From 7449a84ae3f5ff215f36cae5dd75e009684b7922 Mon Sep 17 00:00:00 2001 From: Gowtham Rao Date: Wed, 2 Apr 2025 19:45:29 -0400 Subject: [PATCH 1/3] Add cohorts --- DESCRIPTION | 4 +- NEWS.md | 49 + inst/Cohorts.csv | 44 +- inst/ConceptSetsInCohortDefinition.RDS | Bin 861088 -> 873855 bytes inst/OrcidLog.csv | 2 +- inst/cohorts/1330.json | 2 +- inst/cohorts/1387.json | 67 + inst/cohorts/1388.json | 72 + inst/cohorts/1389.json | 67 + inst/cohorts/1390.json | 66 + inst/cohorts/1391.json | 67 + inst/cohorts/1392.json | 118 ++ inst/cohorts/1393.json | 242 +++ inst/cohorts/1394.json | 67 + inst/cohorts/1395.json | 67 + inst/cohorts/1396.json | 67 + inst/cohorts/1397.json | 66 + inst/cohorts/1398.json | 123 ++ inst/cohorts/1399.json | 66 + inst/cohorts/1400.json | 66 + inst/cohorts/1401.json | 412 +++++ inst/cohorts/1402.json | 140 ++ inst/cohorts/1403.json | 117 ++ inst/cohorts/1404.json | 134 ++ inst/cohorts/1405.json | 134 ++ inst/cohorts/1406.json | 514 ++++++ inst/cohorts/1407.json | 123 ++ inst/cohorts/1408.json | 174 ++ inst/cohorts/1409.json | 66 + inst/cohorts/1410.json | 622 +++++++ inst/cohorts/1411.json | 2123 ++++++++++++++++++++++++ inst/cohorts/1412.json | 67 + inst/cohorts/1413.json | 157 ++ inst/cohorts/1415.json | 89 + inst/cohorts/1416.json | 151 ++ inst/cohorts/1417.json | 134 ++ inst/cohorts/1418.json | 185 +++ inst/cohorts/1419.json | 361 ++++ inst/cohorts/1420.json | 236 +++ inst/cohorts/1421.json | 66 + inst/cohorts/1422.json | 66 + inst/cohorts/1423.json | 100 ++ inst/cohorts/1424.json | 216 +++ inst/cohorts/1425.json | 83 + inst/cohorts/1426.json | 429 +++++ inst/cohorts/1427.json | 67 + inst/cohorts/1428.json | 67 + inst/cohorts/1429.json | 67 + inst/sql/sql_server/1387.sql | 336 ++++ inst/sql/sql_server/1388.sql | 301 ++++ inst/sql/sql_server/1389.sql | 336 ++++ inst/sql/sql_server/1390.sql | 292 ++++ inst/sql/sql_server/1391.sql | 336 ++++ inst/sql/sql_server/1392.sql | 336 ++++ inst/sql/sql_server/1393.sql | 301 ++++ inst/sql/sql_server/1394.sql | 336 ++++ inst/sql/sql_server/1395.sql | 336 ++++ inst/sql/sql_server/1396.sql | 336 ++++ inst/sql/sql_server/1397.sql | 292 ++++ inst/sql/sql_server/1398.sql | 306 ++++ inst/sql/sql_server/1399.sql | 292 ++++ inst/sql/sql_server/1400.sql | 292 ++++ inst/sql/sql_server/1401.sql | 317 ++++ inst/sql/sql_server/1402.sql | 306 ++++ inst/sql/sql_server/1403.sql | 292 ++++ inst/sql/sql_server/1404.sql | 303 ++++ inst/sql/sql_server/1405.sql | 303 ++++ inst/sql/sql_server/1406.sql | 306 ++++ inst/sql/sql_server/1407.sql | 306 ++++ inst/sql/sql_server/1408.sql | 306 ++++ inst/sql/sql_server/1409.sql | 292 ++++ inst/sql/sql_server/1410.sql | 320 ++++ inst/sql/sql_server/1411.sql | 292 ++++ inst/sql/sql_server/1412.sql | 336 ++++ inst/sql/sql_server/1413.sql | 301 ++++ inst/sql/sql_server/1415.sql | 306 ++++ inst/sql/sql_server/1416.sql | 292 ++++ inst/sql/sql_server/1417.sql | 292 ++++ inst/sql/sql_server/1418.sql | 292 ++++ inst/sql/sql_server/1419.sql | 306 ++++ inst/sql/sql_server/1420.sql | 303 ++++ inst/sql/sql_server/1421.sql | 292 ++++ inst/sql/sql_server/1422.sql | 292 ++++ inst/sql/sql_server/1423.sql | 292 ++++ inst/sql/sql_server/1424.sql | 328 ++++ inst/sql/sql_server/1425.sql | 292 ++++ inst/sql/sql_server/1426.sql | 306 ++++ inst/sql/sql_server/1427.sql | 336 ++++ inst/sql/sql_server/1428.sql | 336 ++++ inst/sql/sql_server/1429.sql | 336 ++++ 90 files changed, 21426 insertions(+), 5 deletions(-) create mode 100644 inst/cohorts/1387.json create mode 100644 inst/cohorts/1388.json create mode 100644 inst/cohorts/1389.json create mode 100644 inst/cohorts/1390.json create mode 100644 inst/cohorts/1391.json create mode 100644 inst/cohorts/1392.json create mode 100644 inst/cohorts/1393.json create mode 100644 inst/cohorts/1394.json create mode 100644 inst/cohorts/1395.json create mode 100644 inst/cohorts/1396.json create mode 100644 inst/cohorts/1397.json create mode 100644 inst/cohorts/1398.json create mode 100644 inst/cohorts/1399.json create mode 100644 inst/cohorts/1400.json create mode 100644 inst/cohorts/1401.json create mode 100644 inst/cohorts/1402.json create mode 100644 inst/cohorts/1403.json create mode 100644 inst/cohorts/1404.json create mode 100644 inst/cohorts/1405.json create mode 100644 inst/cohorts/1406.json create mode 100644 inst/cohorts/1407.json create mode 100644 inst/cohorts/1408.json create mode 100644 inst/cohorts/1409.json create mode 100644 inst/cohorts/1410.json create mode 100644 inst/cohorts/1411.json create mode 100644 inst/cohorts/1412.json create mode 100644 inst/cohorts/1413.json create mode 100644 inst/cohorts/1415.json create mode 100644 inst/cohorts/1416.json create mode 100644 inst/cohorts/1417.json create mode 100644 inst/cohorts/1418.json create mode 100644 inst/cohorts/1419.json create mode 100644 inst/cohorts/1420.json create mode 100644 inst/cohorts/1421.json create mode 100644 inst/cohorts/1422.json create mode 100644 inst/cohorts/1423.json create mode 100644 inst/cohorts/1424.json create mode 100644 inst/cohorts/1425.json create mode 100644 inst/cohorts/1426.json create mode 100644 inst/cohorts/1427.json create mode 100644 inst/cohorts/1428.json create mode 100644 inst/cohorts/1429.json create mode 100644 inst/sql/sql_server/1387.sql create mode 100644 inst/sql/sql_server/1388.sql create mode 100644 inst/sql/sql_server/1389.sql create mode 100644 inst/sql/sql_server/1390.sql create mode 100644 inst/sql/sql_server/1391.sql create mode 100644 inst/sql/sql_server/1392.sql create mode 100644 inst/sql/sql_server/1393.sql create mode 100644 inst/sql/sql_server/1394.sql create mode 100644 inst/sql/sql_server/1395.sql create mode 100644 inst/sql/sql_server/1396.sql create mode 100644 inst/sql/sql_server/1397.sql create mode 100644 inst/sql/sql_server/1398.sql create mode 100644 inst/sql/sql_server/1399.sql create mode 100644 inst/sql/sql_server/1400.sql create mode 100644 inst/sql/sql_server/1401.sql create mode 100644 inst/sql/sql_server/1402.sql create mode 100644 inst/sql/sql_server/1403.sql create mode 100644 inst/sql/sql_server/1404.sql create mode 100644 inst/sql/sql_server/1405.sql create mode 100644 inst/sql/sql_server/1406.sql create mode 100644 inst/sql/sql_server/1407.sql create mode 100644 inst/sql/sql_server/1408.sql create mode 100644 inst/sql/sql_server/1409.sql create mode 100644 inst/sql/sql_server/1410.sql create mode 100644 inst/sql/sql_server/1411.sql create mode 100644 inst/sql/sql_server/1412.sql create mode 100644 inst/sql/sql_server/1413.sql create mode 100644 inst/sql/sql_server/1415.sql create mode 100644 inst/sql/sql_server/1416.sql create mode 100644 inst/sql/sql_server/1417.sql create mode 100644 inst/sql/sql_server/1418.sql create mode 100644 inst/sql/sql_server/1419.sql create mode 100644 inst/sql/sql_server/1420.sql create mode 100644 inst/sql/sql_server/1421.sql create mode 100644 inst/sql/sql_server/1422.sql create mode 100644 inst/sql/sql_server/1423.sql create mode 100644 inst/sql/sql_server/1424.sql create mode 100644 inst/sql/sql_server/1425.sql create mode 100644 inst/sql/sql_server/1426.sql create mode 100644 inst/sql/sql_server/1427.sql create mode 100644 inst/sql/sql_server/1428.sql create mode 100644 inst/sql/sql_server/1429.sql diff --git a/DESCRIPTION b/DESCRIPTION index dcd02dfa..bb6d8257 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: PhenotypeLibrary Type: Package Title: The OHDSI Phenotype Library -Version: 3.35.0 -Date: 2025-03-29 +Version: 3.36.0 +Date: 2025-04-02 Author: Gowtham Rao [aut, cre] Maintainer: Gowtham Rao Description: A repository to store the content of the OHDSI Phenotype library. diff --git a/NEWS.md b/NEWS.md index 32281ee6..c5c23802 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,52 @@ +PhenotypeLibrary 3.36.0 +====================== +Accepted Cohorts: No cohorts were accepted in this release. + +New Cohorts: 42 were added. + + 1387: [P] Methadone + 1388: [P] Methadone Treatment Program Enrollment + 1389: [P] Naltrexone + 1390: [P] Naltrexone Maintenance Therapy + 1391: [P] Opioid Agonists + 1392: [P] Opioid Antagonists + 1393: [P] Medication-Assisted Treatment + 1394: [P] Nicotine Replacement Therapy + 1395: [P] OTC Nicotine Replacement + 1396: [P] Varenicline + 1397: [P] Pain Management + 1398: [P] Terminal Palliative Care + 1399: [P] Alcohol Misuse Counseling + 1400: [P] Smoking Cessation Counseling + 1401: [P] Psychotherapy + 1402: [P] Group Therapy + 1403: [P] Family Psychotherapy + 1404: [P] Behavioral Therapies + 1405: [P] 12-Step Facilitation Behavioral Therapy + 1406: [P] Harm Reduction Interventions + 1407: [P] Specialty Addiction Treatment + 1408: [P] Alcohol Use Screening + 1409: [P] Screening for substance abuse + 1410: [P] Use of Substance Use Screening Tools + 1411: [P] Laboratory Toxicology Tests + 1412: [P] Naloxone Dispensing + 1413: [P] Screening, Brief Intervention, and Referral to Treatment (SBIRT) + 1415: [P] Impaired Control + 1416: [P] Neglect of Roles or Social Impairment + 1417: [P] Risky Use + 1418: [P] Tolerance + 1419: [P] Pattern of Use Causing Harm or Distress + 1420: [P] Medical Conditions Mimicking Intoxication + 1421: [P] Hypoglycemic disorder + 1422: [P] Stroke events + 1423: [P] Single Acute Intoxication + 1424: [P] Opioid Acute intoxication + 1425: [P] Alcohol Acute intoxication + 1426: [P] Psychoactive Substances + 1427: [P] Acamprosate, all exposures + 1428: [P] Disulfiram, all exposures + 1429: [P] Buprenorphine, all exposures + PhenotypeLibrary 3.35.0 ====================== Accepted Cohorts: No cohorts were accepted in this release. diff --git a/inst/Cohorts.csv b/inst/Cohorts.csv index 59bb5cc1..836b7545 100644 --- a/inst/Cohorts.csv +++ b/inst/Cohorts.csv @@ -1001,7 +1001,7 @@ 1317,"[P] Reyes syndrome","Reyes syndrome","Reyes syndrome","rao@ohdsi.org","Pending peer review","","First occurrence of Reyes syndrome","#Disease, #DME",1,"'Gowtham A. Rao', 'Azza Shoaibi'","'0000-0002-4949-7236', '0000-0002-6976-2594'","'OHDSI'","","","375241","","2024-09-11","2024-09-26",,"",,0,,,"ERA","0","end of continuous observation",,,0,"First",FALSE,"All","First",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,,,,,,,,,,, 1318,"[P] NSCLC solitary primary rx naive","NSCLC solitary primary rx naive","Solitary Primary Non Small Cell Lung Cancer - treatment naive","rao@ohdsi.org","Pending peer review","","First occurrence of Solitary Primary Non Small Cell Lung Cancer - treatment naive","#Oncology, #LungCancer",1,"Gowtham A. Rao","'0000-0002-4949-7236'","'OHDSI'","","","4311499","","2024-12-06","2025-03-28",,"",,0,,,"ERA","0","end of continuous observation",,,43,"First",TRUE,"First","First",1,1,"ConditionOccurrence",365,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,,,,,,,,,,, 1329,"[P] Death due to substance overdose (post mortem)","Death due to substance overdose (post mortem)","Death due to substance overdose","rao@ohdsi.org","Pending peer review","","first event of death with measurement of overdose within 7 days of death to account for reporting date discrepancy","#Death",1,"Gowtham A. Rao","'0000-0002-4949-7236'","'OHDSI'","","","4306655","","2025-03-28","2025-03-28",,"",,0,,,"ERA","0","fixed duration relative to initial event","StartDate",0,1,"First",FALSE,"All","First",2,2,"Death, Observation",0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,,1,,,,,,,, -1330,"[P] Acute Overdose (or “Acute Toxicity”) by substances with abuse potential","Acute Overdose (or “Acute Toxicity”) by substances with abuse potential","Acute Overdose (or “Acute Toxicity”) by substances with abuse potential","rao@ohdsi.org","Pending peer review","","Acute Overdose (or “Acute Toxicity”) by substances with abuse potential events","#SubstanceUseDisorder, #MentalHealth",1,"'Gowtham A. Rao', 'Azza Shoaibi'","'0000-0002-4949-7236', '0000-0002-6976-2594'","'OHDSI'","","","602985","","2025-03-28","2025-03-28",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1330,"[P] Acute Overdose (or “Acute Toxicity”) by substances with abuse potential","Acute Overdose (or “Acute Toxicity”) by substances with abuse potential","Acute Overdose (or Acute Toxicity) by substances with abuse potential","rao@ohdsi.org","Pending peer review","","Acute Overdose (or Acute Toxicity) by substances with abuse potential events","#SubstanceUseDisorder, #MentalHealth",1,"'Gowtham A. Rao', 'Azza Shoaibi'","'0000-0002-4949-7236', '0000-0002-6976-2594'","'OHDSI'","","","602985","","2025-03-28","2025-03-31",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, 1331,"[P] Opioid overdose - treatment drugs","Opioid overdose - treatment drugs","Opioid overdose - treatment drugs","rao@ohdsi.org","Pending peer review","","Opioid overdose - treatment drugs","#SubstanceUseDisorder, #MentalHealth",1,"'Gowtham A. Rao', 'Azza Shoaibi'","'0000-0002-4949-7236', '0000-0002-6976-2594'","'OHDSI'","","","21604816","","2025-03-28","2025-03-28",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,0,30,0, 1332,"[P] Alcohol poisoning (acute severe intoxication)","Alcohol poisoning (acute severe intoxication)","Alcohol poisoning (acute severe intoxication)","rao@ohdsi.org","Pending peer review","","All events of Alcohol poisoning (acute severe intoxication)","#SubstanceUseDisorder, #MentalHealth",1,"'Gowtham A. Rao', 'Azza Shoaibi'","'0000-0002-4949-7236', '0000-0002-6976-2594'","'OHDSI'","","","602985","","2025-03-28","2025-03-28",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, 1333,"[P] Advanced liver disease","Advanced liver disease","Advanced Liver Disease","rao@ohdsi.org","Pending peer review","","earliest event of Advanced Liver Disease. Persons exit on end of observation period","#Condition",1,"Gowtham A. Rao","'0000-0002-4949-7236'","'OHDSI'","","","45769564","","2025-03-28","2025-03-28",,"",,0,,,"ERA","0","end of continuous observation",,,0,"First",FALSE,"All","First",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,,,,, @@ -1057,3 +1057,45 @@ 1384,"[P] Any Distress (Physical or Mental)","Any Distress (Physical or Mental)","[P] Any Distress (Physical or Mental)","rao@ohdsi.org","Pending peer review","","All events of [P] Any Distress (Physical or Mental)","#Disease",1,"Gowtham A. Rao","'0000-0002-4949-7236'","'OHDSI'","","","37162280","","2025-03-29","2025-03-29",,"",,0,,,"ERA","365","fixed duration relative to initial event","EndDate",7,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, 1385,"[P] Withdrawal of substances with abuse potential","Withdrawal of substances with abuse potential","[P] Withdrawal of substances with abuse potential","rao@ohdsi.org","Pending peer review","","All events of [P] Withdrawal of substances with abuse potential","#Disease",1,"Gowtham A. Rao","'0000-0002-4949-7236'","'OHDSI'","","","37162280","","2025-03-29","2025-03-29",,"",,0,,,"ERA","365","fixed duration relative to initial event","EndDate",3,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, 1386,"[P] Withdrawal Seizures","Withdrawal Seizures","[P] Withdrawal Seizures","rao@ohdsi.org","Pending peer review","","All events of [P] Withdrawal Seizures","#Disease",1,"Gowtham A. Rao","'0000-0002-4949-7236'","'OHDSI'","","","37162280","","2025-03-29","2025-03-29",,"",,0,,,"ERA","365","fixed duration relative to initial event","EndDate",3,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1387,"[P] Methadone","Methadone","[P] Methadone","rao@ohdsi.org","Pending peer review","","[P] Methadone","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1388,"[P] Methadone Treatment Program Enrollment","Methadone Treatment Program Enrollment","[P] Methadone Treatment Program Enrollment","rao@ohdsi.org","Pending peer review","","[P] Methadone Treatment Program Enrollment","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","90","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"ProcedureOccurrence, VisitOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,1,,,,1,,,,, +1389,"[P] Naltrexone","Naltrexone","[P] Naltrexone","rao@ohdsi.org","Pending peer review","","[P] Naltrexone","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1390,"[P] Naltrexone Maintenance Therapy","Naltrexone Maintenance Therapy","[P] Naltrexone Maintenance Therapy","rao@ohdsi.org","Pending peer review","","[P] Naltrexone Maintenance Therapy","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","180","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1391,"[P] Opioid Agonists","Opioid Agonists","[P] Opioid Agonists","rao@ohdsi.org","Pending peer review","","[P] Opioid Agonists","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1392,"[P] Opioid Antagonists","Opioid Antagonists","[P] Opioid Antagonists","rao@ohdsi.org","Pending peer review","","[P] Opioid Antagonists","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1393,"[P] Medication-Assisted Treatment","Medication-Assisted Treatment","[P] Medication-Assisted Treatment","rao@ohdsi.org","Pending peer review","","[P] Medication-Assisted Treatment","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","90","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1394,"[P] Nicotine Replacement Therapy","Nicotine Replacement Therapy","[P] Nicotine Replacement Therapy","rao@ohdsi.org","Pending peer review","","[P] Nicotine Replacement Therapy","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1395,"[P] OTC Nicotine Replacement","OTC Nicotine Replacement","[P] OTC Nicotine Replacement","rao@ohdsi.org","Pending peer review","","[P] OTC Nicotine Replacement","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1396,"[P] Varenicline","Varenicline","[P] Varenicline","rao@ohdsi.org","Pending peer review","","[P] Varenicline","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,90, +1397,"[P] Pain Management","Pain Management","[P] Pain Management","rao@ohdsi.org","Pending peer review","","[P] Pain Management","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","180","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1398,"[P] Terminal Palliative Care","Terminal Palliative Care","[P] Terminal Palliative Care","rao@ohdsi.org","Pending peer review","","[P] Terminal Palliative Care","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1399,"[P] Alcohol Misuse Counseling","Alcohol Misuse Counseling","[P] Alcohol Misuse Counseling","rao@ohdsi.org","Pending peer review","","[P] Alcohol Misuse Counseling","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","90","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1400,"[P] Smoking Cessation Counseling","Smoking Cessation Counseling","[P] Smoking Cessation Counseling","rao@ohdsi.org","Pending peer review","","[P] Smoking Cessation Counseling","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","180","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1401,"[P] Psychotherapy","Psychotherapy","[P] Psychotherapy","rao@ohdsi.org","Pending peer review","","[P] Psychotherapy","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1402,"[P] Group Therapy","Group Therapy","[P] Group Therapy","rao@ohdsi.org","Pending peer review","","[P] Group Therapy","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1403,"[P] Family Psychotherapy","Family Psychotherapy","[P] Family Psychotherapy","rao@ohdsi.org","Pending peer review","","[P] Family Psychotherapy","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","90","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1404,"[P] Behavioral Therapies","Behavioral Therapies","[P] Behavioral Therapies","rao@ohdsi.org","Pending peer review","","[P] Behavioral Therapies","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","365","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1405,"[P] 12-Step Facilitation Behavioral Therapy","12-Step Facilitation Behavioral Therapy","[P] 12-Step Facilitation Behavioral Therapy","rao@ohdsi.org","Pending peer review","","[P] 12-Step Facilitation Behavioral Therapy","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","365","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,1,,,,, +1406,"[P] Harm Reduction Interventions","Harm Reduction Interventions","[P] Harm Reduction Interventions","rao@ohdsi.org","Pending peer review","","[P] Harm Reduction Interventions","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","365","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1407,"[P] Specialty Addiction Treatment","Specialty Addiction Treatment","[P] Specialty Addiction Treatment","rao@ohdsi.org","Pending peer review","","[P] Specialty Addiction Treatment","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"ProcedureOccurrence, VisitOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,1,,,,1,,,,, +1408,"[P] Alcohol Use Screening","Alcohol Use Screening","[P] Alcohol Use Screening","rao@ohdsi.org","Pending peer review","","[P] Alcohol Use Screening","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",2,2,"Measurement, Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1409,"[P] Screening for substance abuse","Screening for substance abuse","[P] Screening for substance abuse","rao@ohdsi.org","Pending peer review","","[P] Screening for substance abuse","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"Measurement",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1410,"[P] Use of Substance Use Screening Tools","Use of Substance Use Screening Tools","[P] Use of Substance Use Screening Tools","rao@ohdsi.org","Pending peer review","","[P] Use of Substance Use Screening Tools","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",3,3,"Measurement, Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1411,"[P] Laboratory Toxicology Tests","Laboratory Toxicology Tests","[P] Laboratory Toxicology Tests","rao@ohdsi.org","Pending peer review","","[P] Laboratory Toxicology Tests","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","1","fixed duration relative to initial event","EndDate",0,0,"All",FALSE,"All","All",1,1,"Measurement",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1412,"[P] Naloxone Dispensing","Naloxone Dispensing","[P] Naloxone Dispensing","rao@ohdsi.org","Pending peer review","","[P] Naloxone Dispensing","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,1,1, +1413,"[P] Screening, Brief Intervention, and Referral to Treatment (SBIRT)","Screening, Brief Intervention, and Referral to Treatment (SBIRT)","[P] Screening, Brief Intervention, and Referral to Treatment (SBIRT)","rao@ohdsi.org","Pending peer review","","[P] Screening, Brief Intervention, and Referral to Treatment (SBIRT)","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",2,2,"Observation, ProcedureOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,1,,,,, +1415,"[P] Impaired Control","Impaired Control","[P] Impaired Control","rao@ohdsi.org","Pending peer review","","[P] Impaired Control","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","fixed duration relative to initial event","EndDate",180,0,"All",FALSE,"All","All",2,2,"ConditionOccurrence, Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1416,"[P] Neglect of Roles or Social Impairment","Neglect of Roles or Social Impairment","[P] Neglect of Roles or Social Impairment","rao@ohdsi.org","Pending peer review","","[P] Neglect of Roles or Social Impairment","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","fixed duration relative to initial event","EndDate",14,0,"All",FALSE,"All","All",1,1,"Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1417,"[P] Risky Use","Risky Use","[P] Risky Use","rao@ohdsi.org","Pending peer review","","[P] Risky Use","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1418,"[P] Tolerance","Tolerance","[P] Tolerance","rao@ohdsi.org","Pending peer review","","[P] Tolerance","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","fixed duration relative to initial event","EndDate",90,0,"All",FALSE,"All","All",1,1,"Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1419,"[P] Pattern of Use Causing Harm or Distress","Pattern of Use Causing Harm or Distress","[P] Pattern of Use Causing Harm or Distress","rao@ohdsi.org","Pending peer review","","[P] Pattern of Use Causing Harm or Distress","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","fixed duration relative to initial event","EndDate",30,0,"All",FALSE,"All","All",2,2,"ConditionOccurrence, Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1420,"[P] Medical Conditions Mimicking Intoxication","Medical Conditions Mimicking Intoxication","[P] Medical Conditions Mimicking Intoxication","rao@ohdsi.org","Pending peer review","","[P] Medical Conditions Mimicking Intoxication","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",14,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1421,"[P] Hypoglycemic disorder","Hypoglycemic disorder","[P] Hypoglycemic disorder","rao@ohdsi.org","Pending peer review","","[P] Hypoglycemic disorder","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","7","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1422,"[P] Stroke events","Stroke events","[P] Stroke events","rao@ohdsi.org","Pending peer review","","[P] Stroke events","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","30","fixed duration relative to initial event","EndDate",7,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1423,"[P] Single Acute Intoxication","Single Acute Intoxication","[P] Single Acute Intoxication","rao@ohdsi.org","Pending peer review","","[P] Single Acute Intoxication","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","7","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1424,"[P] Opioid Acute intoxication","Opioid Acute intoxication","[P] Opioid Acute intoxication","rao@ohdsi.org","Pending peer review","","[P] Opioid Acute intoxication","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","7","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",2,2,"ConditionOccurrence, DrugExposure",0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,,,, +1425,"[P] Alcohol Acute intoxication","Alcohol Acute intoxication","[P] Alcohol Acute intoxication","rao@ohdsi.org","Pending peer review","","[P] Alcohol Acute intoxication","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","7","fixed duration relative to initial event","EndDate",1,0,"All",FALSE,"All","All",1,1,"ConditionOccurrence",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,,,,,,,, +1426,"[P] Psychoactive Substances","Psychoactive Substances","[P] Psychoactive Substances","rao@ohdsi.org","Pending peer review","","[P] Psychoactive Substances","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","180","fixed duration relative to initial event","EndDate",7,0,"All",FALSE,"All","All",2,2,"ConditionOccurrence, Observation",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,,,,,,,,,, +1427,"[P] Acamprosate, all exposures","Acamprosate, all exposures","[P] Acamprosate, all exposures","rao@ohdsi.org","Pending peer review","","[P] Acamprosate, all exposures","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,0,1,30, +1428,"[P] Disulfiram, all exposures","Disulfiram, all exposures","[P] Disulfiram, all exposures","rao@ohdsi.org","Pending peer review","","[P] Disulfiram, all exposures","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,0,1,30, +1429,"[P] Buprenorphine, all exposures","Buprenorphine, all exposures","[P] Buprenorphine, all exposures","rao@ohdsi.org","Pending peer review","","[P] Buprenorphine, all exposures","",1,"Gowtham A. Rao","0000-0002-4949-7236","","","","","","2025-04-02","2025-04-02",,"",,0,,,"ERA","0","end of continuous drug exposure",,,0,"All",FALSE,"All","All",1,1,"DrugExposure",0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,,,,1,,,,1,0,30, diff --git a/inst/ConceptSetsInCohortDefinition.RDS b/inst/ConceptSetsInCohortDefinition.RDS index ed50f7f0ec7bc3cfb180a1d4099c7b034f7dfe5f..eaee8318b8afbdb2e94e3b39a28ff9972529f869 100644 GIT binary patch delta 721147 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

X9H$}*E@YSF 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%0D7`E}qP=5vWR3_162ac#dE+^K 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 HgNychG)oRImTET&)G?29=ENDem<&GY3Jc5?COi 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 A8qeN)oSkE2^rWtSurx#Wb-#=;cjHc+{rF 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

heAJnk6%t=p3&eonlFoi(Rh+wV&E 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

0y|kr+SK(*1PU@7 z6KEc|{pvTAan6-6MZ!f5z=B!5N@`g5?0AX+3ewAZhv3m_mPohG{d7^vGH*oUYd;BY)ws4`J772SGsZQ=OKhg#V|ev^PY(5Q+){0I zBEgkS>WEXvvG8O{5aP;CA8gQ@l8qpiO`P;KgUs_0<`BadbBfHBClJH2*NxODSl=~o zkEHCaHHS@GN9Ig)AoHHNVz3F18TM{zniRc@(nMLlsS6z37Cr|4Opc@Q}AY z8OUa%OfQmow{>P|oj2ufoA@x%PnTOEDA0b}NQdkg;ame}Gr1?JPl_AEqhH%fv1_f! z%_-22lfFc{pfQ{201WeR3SV-^o2yh+RYf|t+EN1DwA6mRCh@QzN8GwSQ_Q5 zD`sD6sp{I*?yRM}`CP8qUlSOT5PFkb?RbrYOP$YD4Qv7X}f`Tz4x3~QUPC}F1mIkN} zfv7-jS?wq~e<0{S=j*{|GDGc5Up#d^gu$5z7XB|vT6V2jZsbCjzSOOA$}Z$YrUC{h zU9QizBDJ&hy!Ek43q-ZZ?3rS5qcbx3jgmieh|1&s^f^2$T5qtM4G`Ze-xQ%}7sK3Y zClR1Wx>Atz(2v=YlYphU<0bOiYh}5^uuKEfn<|Ukbo46LV?hdUBoCGY#I7karEDwU zC%OH5NFi6n=Q1uTiaF&5(-DiWdDc|tR`ui{Mm{hzWcBc*DX%DaFSM@eM~cl}j*&!B zj}$?1zbGRKI6M;}&C9%xGVp@eq({|`<;tC>}Ehe z%S?l&t<4I{atXF-bF*6N;$5HSEHucfNaidg$JA6({^ zOLB72J7EB-Bl)zEZGfl*c&#)zZ-qJxf^?lvDJ)Ln$G4d2ltgq}_TuwZi7#RY@n0ex zLqjyl-&4vh*k&fXA+?6~oROHmfWI-QW5;Kh^&RajmINz9=nJ38{M>6s7OVr>)uCsE zG?BkUmG&er8wdYFvE%uwl&;eXu?=1(?B)1?n&Wn`pNKp%WpXsbS&%QD!Bb`OaE2m{SxuaLMm&gV+{K*^wbRJn`u;kX= zBE^9c`p~0}JWL@h3uC=C|G({I-WbaEyoH-LkbUR!R)t16dKw-=rW@Q7- znc&`Te!THTpF?!J7vvGi2N|aO+Dn)xyuvuNuX&RnGrtK)%21EgwI02!ls}{zPp;V1 z97sc}nz^)59viiS1wJgAZJNz^i#`pWpZLc2MqX{zLrR5 zgA=GyTk)5@zCS-6YqU~hKf1!VH-sJiK*RAI;jfwoR3!~CZ#WefZVl5wQ#y_=Q_0E> zsZi}=w?9+Ejbnr;^M*07Fyq`nM3zBvg@3}m{d$d4hYG3YV&`%*t1kL>BNiFZN`{z= z=d@F6wu@nV{{WcJa#5Rjt3z zCIU%2)1ep};wV&MrE$?%0kkMywLqpgPjQ_oqzzx0&fjsGtPa50_P{Sfk9-@jI%017 zEvtkKaso?jE&>xqVsn|FFb2wf_q~wwc13y3q1)Ldar!aY_h%*z7{-a7(gV_bN`dn7!u=u^m^)pZ+Y;jQLY>G|8BLHGiOO{=z4LLu?= zVaM_zgm}ZJ$Kk*>^DFvio(gzc@ZpaJNhcY$9%`YJTlcBBIPCB|(#c8#P6^On+Q}f8Gs@BNc${3lshG5Qw-;lmT4*qqir}=#4%OWp z9l_A!q23rULU=y@I=!#6i!^}nfc#R;)mi3URz@DG|5Mr!Ax%&Tlb4l-+`9&>ok`?z z4LS9V;!l;xy{*dg{QJ?5vqYHj*%xX|qtU^vIJ@mkV7YBpqx0R@^ERZ}rs6>=m_ip+ z$I*F>n>s+{>_tnlOjO=)6p0iTo*L2!9=aK0XAnUV5|)Q#Dt<8Zu7#>}ARZ^7!;(8~ z!r|ul?ZU^T z+UNEo1Tu?V{cc6t{P+{6I~@hba@HOR=0)emf!kBT%Ve;+#mc!eA_Agc^%^HLIvBsp zIk+%qhPk1}oGmn0e_hoNiylA?@?vVL);nVmvefTG2+&}fj>(mD<1fibeCaUrBMOw^ ziY1pGtFtT-&v0HnN#;D+MX%34K||^we}iHh)V`wGbzTmZ|B;YgU0ovw`$Xxyhrv}xClp>>v(MoITX7RBWbDQ7=tLYHuQtl>#%sk< zcenv7a#bpLE^@I9PXo(PJS@0(om0d3IY1Qtik4rcy2;}jfG@Q^>nToyS-WZLh?;7m zVpK@7c2^aA3-^0oZXBhWKs~JS^B1%AiIPQ1$EE!IAywE48!U{W@{XwQh%Ws3nud^g zn#!a(Xh+%lKb1IH>-;Z*2n}1c8blF!OQWz`C(mo9-cCAVtY>5nO(l6*D1I#B`2aWl zE7l|$>HW_=6DAuvwym?U?ycuklLioGGlLZUSiuB+r&{;#o%Xoh{J&Gauc09lr;212 z8GOV)LQ^j1Valh_f2O$_B&DU>u3g5+abj)DN-cL%H!p2@n9M&Au}x)2B_}zY$JSdT zS4cOOXlX4rbe$_mxOuO&s{WwwnFmhzOz42=HpMPx{JyjwP1f}C+y~PvHZ@>2u))eT zIp1o5GaMJm$!X!rFd=zzS*$wCECeG?wE6;&X6%^i9S;xEp*f4azjNU!U5i}jD^A>O zj|zqs0scOnb`WDJ?G)rv>C?hu5~?nHalWq>hcGUY?=TLs7gMXI?wCm^pWmi{l`tYHMd9df z9v8RkzHUXc={1r~zYFzYV1;VQ_?q0D13GNj?*k5^PD^c*#({R9i|Z#!rUOM8SN9}y zn~=D+3tEg2Nw)7Qk=w(>FU%VVX!_7UXFU7ocH2b|R#?Od#)lW1!#>d=ZEso#po1sy z`QUgFfB&dy?Z6(bq=Aq?EgYSgkjdRY?=|ltXTf;!nqRm9#-M;k}MCi@mv)}XG)p0X1Z8_i*`rib00;hQwQB=Sk$~ieQG3wc@U~B zF8B7)wa@RP?ep+ib`7q$46GyOlNOi|uEirBumm3Xyi10QEZNPR;6s%Yn65PK5?(g0 z(8gHF{o>oH!zlwG&wE3)5X6dh%|=@ms0AUEA#ZMzfZ_8^w*TDzC4E}ymxQDyiZL^pcxQy^oO za>W*eHd!fMRrcD{;0ymG_3|LIJtF1DyUd1^p0aclWs04AWgS8gqrBAX1l zM-!CW0$?P)FS6?euWQk6CSpo|5<8g<7dfF%RJEvqoDmDF8aJ7FcLm+H0Pr9>;6PuK z0F)mCK0P@AJxtwcp#&msxl4w6TRVdcg z^*HD{96$zc0qU&;NJ9WEL9@94st;(;oeb~+cLRY(05C9?4M*eQ3#`v~<9$;hO0Q?j z1FIQ9Xzc)I$ZDZ#&`cfx4;^zFnzyhAit*)DTxOK}jQp1|$gv%O13V`X!!kCsuChZG zOncw;h?3nx3ssKhzFBGHp^tw2=o|QbU#HJ;Pn$$KsKN17bH1)^KS2hKEndX*v6$$Z zB`~tqb780rkrB0TD%;7@dc&$3djO?Umrh_Iwp5EEf@YXMjdWWhGq@#q8eS2Nh30$m zp5n1%v<85tao}WB2pGSm0D-MLf?f()5C!)GDmkoUr5jtCKac(x#=fh-04PoOqxodB zr!xDM;3}vhx6Nt8Ha4Y@&}Orh@Ti95bP52!r_puG4?F8fLQoH(zq$czZtLsHw!2Pw zBiT#SIDsyyC;3q^8caICXRBGiC_LxC)gv|BiZ8xH%8!6G4vhDqWmvNeVL!FSBHa8Y z7emOrZrhZY-6x&W?@}a+621T6BCgNok@AMG37s5ZVumx^0)i^tD`>gA_?CD**nlRR z6T8TmEd3;3#?s}&DT_~8@~1%(Mdw|4GS{dISk7o7xY3s!)REee3KkXgqqpRZ;n@ky zMB#T`hPvcQ6!0Nhl{QTF?N4G8DwKB(eqROb362s6&3b~T;Dw$A8&0+KN6TF)5gi5! z8<7T`8x7Jrp}2zIZ@u6%ZQL+I(k`^!Y7kX6i}6nys$j+LD5!1;Gv(FOm`s{e?sWnF zj1F0xhbZ|xdD2TqR!P$t{-EzP^(XK1m!-OE54l$<2?hzvJ3SPVy)*ImMZlQT#xq6c zGFxRnoB0q<>mAkf;=j3H~mm_&?XjMsS>C#IfKvj`MrciuX9rkzOEZ&3g#_oxgbm)|{rkZS)Dr+W0w)9QMgy!Nn5sa%MIXS+0%X_?PzSF9 zi4+4|z|}z_u>d0Q4vm^W68~_Wv8HAPzzz1&vF=hhv!Sz#`0DL6R%QxqV+d?n>iQ57%NRH)N zi-=u!pz8=&oCW8~8vNH7P*psDg!oI{b79H==5eY2l@ghFXnLnY`y;jUR_^-ZbCj@lI$hWOcucN z1OA~T0?0Aj37RAR!Y?26#T{EMyYrP0`sfP?ISfDzZVz%w1h4^rUy(_26;#wyhG}ep zrJ!T&M{I8&@}FS848h@OQf0#!HJ^u5NO(47Rjqww!cVKu-6KOdgNV;>`%;WwE$DcM z3+a*5NB$!hDX@~;&D~KTs!>Gx);9BRsmLa@T`^1P{**$_H~7e|4l?_dM96yg?~U|LNMwO=8GBxU)%V}csL^6k!Sa}_6rUv7k~Vd_1^c0 zh{VxX{{En|v*m~P==*XymB1$lmadQS|dp8U9I#;Jlnsuwio_-Xl5Ru-aFQJp!xSH2wTOB zr$`Fx!EW@Vk!ER&hn``h`1Hgz&o31e>Z;U`aneu%S0d|PWFiSYChAlVAL7{c?j z86V(#9KSLI6#l3S&gUFu6=8bS0A#x4UWkMXgER0UQ$B{<`ojX-{_P)C7T9)3@ly5- zeYjY<@eg0BvL=PO{vhk&I{dmf>JB+0O{kY&!SBG^H7pgzj(e)ER#k|Tb;Mdrc=%M1 zut67zb|=(u=qq4nehBXi3oL;+?4=-u<<0L0e5ShI7jM4;Yj9RJrn{z;&HYW4PEsVg4L6C3**QXY}uk4R?Rd0g=WnRn$ zutmODZibdA6k}IS%aIx%RauE}&berUVRD1|;ki}5>!|0{Vt2iT_dsp)BUNvDvOa?0 z&<6sk|5xbI_;@2NC?B}+e6rZ{QIG}_IR~s_SLfeLz%Ut5E92LvLRd7zrY1!mdh1q+ zhQ~9h?~vNxxk~32+?Jd@Z!c$S9p>pR%+p-V2@s}PNE+^tv`z?X!H2TR8sl_D97ANP z8bW}4{qhP-@!in>!P zCdecI(Qca={x1vfuH9ZmuLZr%u7a`>+Rn99rt2QZwCNU=8NZg>?8O=`t!}@IoZ>_2 z-MM0R*oxY)^Ich?=a>8ui#L-;t_U}tf^SIOFbe}(1r27RQNkLD{QQBTniCp5oZgrj zVe0kl%*R9CSi98fYd$ZG_u1=6pF$5(5mA;x8%yd~IKf)Ec6u}Q0?|uY7W)Q1b+U>I zsvI*Fs}BEy>Z85JyZTgkrF~j2vBH`O$8lvwxtZ` zCdmK^b@X_&XvKP*-i1isEdv+S-r|teuu6wm-jM2-!@NP%-al_hTyS}4%rey>yU%JC0rnNn$W_r$Vx8*SGDjsCJD}s70R!` zyeu&fNfhuUzqdw(Z7IZFMwhdPOc0*~Qy|R2r2)_5L}}$j4_P~KpIlNit4by>^@%3m z7l!yL!6s>FW6mT};Fd!~Q9jhS`kn>$1QLag5m=^q=&aGFd9l@GrdMmxa>N<5m^3pZ z6Qr8XcaHqn;rZ9((IOG(Bi7)*$_Zq%ZUkgJo|M!sfS;#9huqRKnUMD5PnTe>1cYKH z!C3~sSYZE7jE<@xddq>;zQU|T4N|1tm$1L*t+*HDtUx}`mW>#IlI?Q!(>H@#G4pGlOt(7}BplFOxwsUR zy$s4Vdu!+|tB2~M%)~A{qD*&h-%p4hY@VBSV;ZY$eBNAPe;+mbb2+R!F)@9vq+kfSDV==;8x#Xg^i2drP6BjeqZu3cU_}Kw+>D{alRmx`ej18t&IXKCRmF~=%wI7XK^j93KH$BT zw-9m}s7h*Q3STTm8pn4M5FXaPBm+&w@}l!pdp{vZdV;AYEX+rm?M2^ zOvgnslal|ry8i>ikQ$Iocl_gP@{ky!e{8Iem|y~*X=-?N;IYdjOO2r zfL&+(f@xX&tJ&n`quB%!(YjSr8`)1PX)a-lj+s+ING0?xbyxALhY}uYkhF}IbIS=5 z@@5OxIm4k?yRSi9ppm0@} zq=2yL*V_ipMh{kR2jZ=dc52nknQ())`=AlIG7@o zB$Upx_*gN|*(O35P27r=%|-R(r+3W{CK*Ht!7RldnZKkRRn#2KwlJ3)O^YK{WvC$(H9 ziJl6X)l7}EBt7w6`o%i!t%x);ILCR3l(Dbuho&v61j%^)=oK_VLD!`B2R@_ae^y=6 zN$jU}0FwhmIt^Z5I}<)c`kFu?mM1C&)vUV>B#{2iv?V_*yR{FBri;WqdK$^Gyw_u9 z0{2z1!W2wT3TAc5d}m@cMu5A`K2#iY4TU#zC^ZzXEeZkCX24OwvbbocF4?M}1x;)?`Oo@?c&@==G+zBw`C=pC@OJkuf1gi-b^a zk>;s~W99#v0u`i=$`!-zBgZTJlH24^KHp;E&eGoQ>I} z0}2OdwrRN`Zy)s_!Q#?{)Zh>?2RuNyC~Z_8Sx zl+qO32zD~B09Bc*qBZBPEY5mo=q^b0z`Gsvc*xAz-QeiNXQw=U4=`OG>RL>X zCEf~g->vDNz4x&VaSBdW!J~PX&O^D3JX|LJcfvZ!LD%p&2cAJdLf2{$;9BJ9A$2 zY%VkcDQLSfCStEK`FklAyZY)lM;-lm6&{&muZq2d`Q#X;t9tjo7aHF3wdNNb+Rgz(rPw(*?D;ETxR*%#6vY$goq7#;b*`gKV8u|a161}&0-5o}sV zG%hdR0_8bR^~bmC^XYPD6~?nu40kJ(Nj5U(n>ao596IR!k3JN{uY)duiZslDa$SNd zs;n`*fbNw}DG}`=>fkvZ+wXzB0odB=1T7*NBjJC%hvPzkIH_qi=|QpPz@G&92_C^D z>SW0L?smv>CIYhBg?~D1wI(~@3#FYjCP9l06;~~$ssr+-s5=zJ2pdcHo~DVb_x$t`OGZeBQ3Cs=2mUZ$I=8Z!yR820ycv zrnF(rg}X&gU$o_jYsluhnRQ}>MQeeZ{x;}*kR=-l&gIn{$_)#55dV38IBF4v<39$-oo6EJbx^@ocW*PXkma3nM?s;gMu!m~OQcSe z=F5me!)2c~G#;b({^ROX_Ob3pNqb?z0SC7u@Vg4L>p{n9wuyIT+oven&kIv)uDQ{8 zEm4Irx>~b73$rMtC*KY9LAe8F%^{L!^JZ2Q$H<$0Le_{{4$n!VXCGzH9B^V>{n%|ru4=+(6DShk8r@G5_m*mNMO~v0f`pqP3PYpi@a$J!i z7`@uy4LEZ-(g>c}zpE_#$sJ*(gw+&hv4GZ60I$KE>9AyH@NeDO~mTE)!j8@0ax-H{J)r=NPmYyd_d6k>yQ45|=5Q zPVJD3?rV_yR5D+m9_iZ8YvOT?nXd<*lI1!NVJqc4!E4SAS6LQHVqlY9ShJfeuF05B zkK&22!Z0 z7t1yBF>l#q1&U&8D;p`>lr*2a3sfG_?Og`$87`#Dm0|R&9u6+?Gqur(kAO%&+uJ5G zsZ8hc<%fZtcfGF_U6X|xf_U6sr^YjzLBf!C?$sIIM+=(fJMo*{PUvKGO2B1u75TR$ z6+uW;pHU836Z_NJ!K|NY#8i}GUCS@2kPm@jm>?mIa_3fBBRY47b=ImCHa(a0UTay) zlLC>_$xOE}Zv+17D$2#P*zu1>v2NRR+{QJiDR0*W?Xv*4$!~q0$sm?^qZo??cw6Cq zcv&d+zF+kSe?}!Gmty^9Ac6GH5t`v5RLQrb&0YjcUPPJ8DoDJg857b}MdbCmCe`b) z8to-1gAN2rbw5&`zf8^>8z|^TBzTgvxy+O*!SsYp^LY3QD&iMUG0hfy<@*K>#a1%E zFg|@gK2ztnX1J&W@ilQOQq?6kKy~E=VByRsZSy~t|`MZ|wjGg7#qNzno>LA%N$LdPi zV*8_nM}S|k8ySr1ve7xBJb~f;O1|IP+ohbl_Q|IhCL2EsniO7V*bF z+Ge|Yxb4W-yzcpyEX+ewMSEm0wK;lx?Ed{D0l}p%S}Fw|CTyVAvRccyqQBHsFRjUI zXTZ*qXCQ@Qcrndm5ko`HnwjG$w6|Taa_!P6zYJnk)vzXy9tPG1T-f7^!}9$oZ4$9W zedzbK$*9meGRj{UxAHLv{Zq`Lcm@`zD9vE_9;C6fs(66{CU2`w!&;fV&J~|Xq%;FC zw%<8^y&gO({k{PncqsWpZk%aw1Xce!Y~KTiY1E^m59=b6wUW8U#7Qs8rWW&>a4fEF zr$P!BDJWp)(R+Xiv)7A!Ou6VZvhzePygoS^ z7w)#dRY;KvJ6oWTp^(qk$2^m^a!BOB<+1LAzHptyUN6b@0{hFJWYTEMA@gtcey*F5=a~YC}mpfZ!G|cEFl5*ypb&sf- zZJ6gi5bzsV{OGFTpfql$t}XG?{yHrtu2Dc4%M`XW43}CHG8iY?w|X0nWuy%WFEhxn zF$i&;b0fbK>&qaE-FG0Y9+ntKuaRynSo1!MG$zGhbZGj{Xc#s|1Tx1rT=z!WZ{wf0 zsUM^9mE=VzzZj_$+ME)f{qEp z>>5}A9aeYuTlg#z&3VPBQ8HIRVenwf-m?b}%Bw^d3qzrjJn&8PW?Lqg=dS@b@)tag&wdXu+g<4P! zqifgzslE&xb0q6WeWJ97$hwvMS&NIB5ns61Rs#dKFc$Xt)4tifKb!y_3tXm|>KURt znD@zyn-^kRb`{m6`zN2qu9CG;Z&^o|E=c7g;gA5il;M&%?A(Do?r;5a8|`riFk6-7zOQIf#GrS9;DV5rqGP$MyN`en^(0?6Az z-T^GDigLefd1%&eJc|CyY~JTTzAFy7ZQ%#>pEzNwCAqa}XP^t-&&$<675puf2Q2-l z2>BmP<%yuQEfb?&PC_v*V=Hu4oclY)S`#9k2GV3p5a6VleXnc3d^BGCD1{{dre_%p zoZeM+!Zt3U+vXhL9gFjIJmpXM(V9d!9_~0?OX4@I;xt}=!$^zhvSoy{)UIgeS8N!o zf(~D2TjeGAL@Q9F&Gv*x&!ZZsZYRK>fTBkHDB#U;^Pls0!}LWxtC!%EhsLd0Ddnif z2MCxg;pzMYs=)s$k|)i`Hk15qH!1-qw0f^qxELd~hvI8CH4Uy*X7JaGt$bp7H4M>H z{HB2(!yW|sGUN?nMbiObr^$#YqWomzWUo}c(61PkQNBLZGBjAicFwTET0)A7IiNvP zxw%1zYC%ic(YUp)CeTBVmByHoHN4{Y!@dBeBMVmSnl`8xT6E=w4Ot9y(4 zKTo(pL2!D(7QMzi&Ps(6pDW`iGbj7Qxsh{LJW%$RG*c?qc zXZM%opgUF|?gMe26Noi3Fq$*<9q&3*IYj{vwQGgwqggT>LmpF--}|8+vzJat%8AN& z*e4zx7R@HYzO*>UVJBjL3UFd(!*T0A6htfQ$6k zmW_hIqCG4uQ40{16)%${Q$V0N6pol?!OUWY)d_49 z(2z?PT-a1qy~D$A8KB1Db>4cIX6e-21V|<$SzFk(%}65Y4XH|1mY)cmorI}Bh*wvQ zEAQ20RXU3|crRZG%R-ZOo$BuO9sQxrot)trc=mLF>m3d*oLHzpAOzAUtlQBMN1Jq}K zludCHA?fl`>me8@Jywm@44o{3M@6(z{V78*N{sez&FzXwb+$S;6p>}@D%=>eSJ~r+ zB(uD<0LuZNf>Z%1gR?ww1$gQgE?ks+VuW#X&>axw_2++EQkN>WlXLV|d;d?0(cuMhU;*YsAL4U4fkSDrPSoXHR_n5y_Q(&j(>s42OJn zJmg-g?kW{+$TvKcDlM{bX&aX{>PuC6p?6Ed*`A^0&=TJUI)SQ{c`w;zY@&koVYZhI zgyVd~GW~592J+5dm-3zh&N*)InD7J(WWa|(jrEDq^MsZMPS|-bZP?usMZdS#+d9BcLApfR2w(_faJ(NbOSrN0%>M~2D{(14;1tbzy` zS@*(8NVgi-08u}v2CCI;z&Ts#t2(@tm3z2q9qc3`s|uGR%^RqLc72L-$9T+YJLRGXLpQV^iOv%X3hXqf- zQ+y=o267U|Jmc3pkk30}r_M`YGSwB$3qGkO=v3A&Uk;b)tB>zB$55@xj|1N-kE~d# zDH$YWI#4%xP8O&jclwVr_ymclV$_a7mUGnvyj~~q}R|V~A&gcWHWsW6E zTStpFKY)zMZKbR0W~8&tr5_ik!XK9X2`_b-m!{v`XF`V8Vcv_Tk7h?#hG-; zqY(U)9m5&WIc9I#lc(EPDL_4|0}>G~TAG=t!_8d?@$`pMD-JV+UteD7Mr+Y#oo3F`>HePsC~b>4%tr z(%*?Xs}X<_%|%bp^|>K{Ky0DbSI^IfyLRqo({G6kjkvWwEFL!DL}%D1ej|-k8A>H> zVgi_f!P`Y>dnAW079U&u$uVKc81od6?;4SFsRu996@4Po-dsV_L0jg5pPXpX;N21m zVj#aYUaffQQ;eRmT&^(zec)m@o@pU~8y$(6_;;=*RJp6eC z##9&W-ZQb{J3>!UPzMvqsa^VYsK%wF^Ok2rNkx=9Cd}Ja`#gh*C^khEU!n4= z5^lx4Gh*SpqR+NT2Dkf+T_nD#K^!g8Q%kP7+k&C0fq9M6%D)>3I;a`@+@soOtatm? zo&oz#x{U)4>_0o0C%$kes4ak-{+Ph}Qe{E$?zU-PJ7bReF$}b#D*wk;;K?>~=K#7#*jOOQj;p*ll9Q@m1tdsS-b;$qU+ZF4-yFHd;$- z2nP5a*8UfJZy6O=x2+8Z2~fBPcXtgA0fM``ySqyTcL`QNa0u=W!3pl}?h@SftGwsj zdry!4di3c2+x=(PUUSad-XJQkOL`AthU)EX)1rx>K1dp@Py20>$5O6(g z1@gnJDJ&$K|B7hW{)g|4vYBTCg2p9Bq>FOIM0GIg!mon)2)R-?YuAO_V{riIxIVZ~ z)8R$l2`wLi?z zlI$M%W^PaODoC#eE5x{aMd%a!N9O8q5BE0$=yzg(f~QT2dS9JW06&5>$O#y*4k4%C zZq-Tw%7AeZodo|t)dU|iR*|LNiIhW>=z-QC;acv#-rNi}4*h#m#$Ko}aKndCse0PV|auJ5;I% zXaFCzJ}>YS`y>;ol;ip!r4W>SDQzSo8VaM0edKCh%`&%vxnKp@oNbU9Q`RTe;Hz~@SH$-n)^m-Hyk)HyD zdnn!QC@zKAt8uBDqXI9xnNX#WloXvW-^1*Fu7sLG3!m$XtYd7*viT8P4b~o&nr*vt zoz)ab3RAehyuX>hMC?CMyh~^VHx~{Sr}v|GS~Ct^{YZ#;MUA~mgjQKs?b?i!v5b!? z4U-iE_p3Va>5>Se87E4@u6$$@lJxWiH>|Kf^UhoNWwNwkTJ$y5TP-iuc{HE)N^edo zT;`#C6B8{lL6i2(6?s83IbK;NI_m}FXpI8sm>a_Io%hRdc)XON*I?AEPrz^TVQ2fz zeVOCiu=)hAsCA^(r;?2=!9l!I{DHAMOReLY`OFg|Wc-A)j2sgEJ^Tq5RHRSStn`z~ zW3L`%^rz2DclIsBWR+SW`rml*6Nb`dX++w3%{g_DDE=HE`MPF|2tzaV)EU+gv=mJP z^J3H`6UWWBrWl)d41 zkt^d&+>iRQ__@$entzldOeYHPcK9sve;WlpDcIb^&!Nl_;O##(9kcECGV1aSMh!&) zy0}wuqgyweiD6mhcbP||%!0=yH)wtWor~+=g{%;Sb6`hEN4>wrUaBV6GDaNqj=Oyh zx{Rz3T#A3H5xHc!R%%cNO;`UBo}E3I5G#&Nb~+^8#z%Ye_PW9)56yNKIlLK>ywFjF zNzOc5OiPHZTkGu|Dhn2#7^E1cm`0{H`3f_}o|?)QwJx-lRr*to_}HG7)(Z(4sB4Ug zNXX;xbdaiFb_Sh44AW5eSZO? zMjT%6+={@@c-}H+DWslBHMW!xE-o&^sc+xzozc3=4ivIMb~-oc&G?Jn?MG^JDr%Ih zr#%voI+HhErIX*KNT-56F8TpVfeY?ktIUrcNa+?)t=VT>6RO!9nz7>&C2%rKcfq#L zXS!zB<;jWf+6#8!jRK5kgqK$_a;*dm*h@Q}hb6Acz<$^-mjU>C~J zz7{m_*d@8sreynb#912d0BuB71(%bFG)|BBf1X64O#j(Q^F0f>R)U$UJWs_=(0_BM zY9r#A^@k7$CR)@~UqvvqaMKk%#j%(+GKa`W-+Scfc zvUnPjaXn4%9Ws6o4g+U6r7&j%&5|ZQ{ML7lnNHR5wymM=pc;%Aia&P~-2dRWY1Fr; zFjuNuDZLoEw$d0)e}}lRYF?d=j>l`IXzgOLmYelyqO44+;c2J#pP*=S@rus@bwq@m zDZGYybvZ2hduFnxsXMq0koc3;f#?u1Ebpg1z}oNMZ%v4AfFDNM^RSF3rOes}?exRk z)+G+yRKW+CsM)6@Xot$@7fret$9%AZ9Nlf zX}Iga|55m!3Uu1%FD>xZ0cNPV7>bpOwYQcQ-s(BfmCnqJCl8xKWSOsxX;sVXJv5uLCc&>);4=?)$|)=paLW>}%g5K&Z(sb5}cO`1m1Bc18M&^OhU3 zzBs|Cv=T4_lszIfr@y++lX<#sM!^90bgcmN$B&fy1H5gCK<}vaeDnfuB>w7uQfV zETu9&0_>Z+#XPG`-1zQNJ)G*#Ow!D$Zy15GZ6)1qg}_+sj;re&ps&NCTJFZCfF4wK zQlp0aDdZzpkCDLL%B^oLJf-ARxlx`wdw%X|I6%mUKXIq0nmsxLO_16tBub8*k?Gs_3MujuUfTlUrmYH zUJ|<;S!vW(-|Bp<%1QGzXxJTH3kDGH9g(IBsqHzhsk0=DT>8EqXgKH-1YNs%DZS`2 zYCuCOvXNeV;J;a;*Y|rV5&iQnP^B^Q{;I;RH{l*1^s`i>ZpnMyH?{Id<1;Wup?Ivj zrJ+YapqzK6TgCfmGH4TJpiY-b#u`)0ljJARo5oZUR3-R#k&haLxt?tVcg3)NC-?k0m53$ z2{7M%V%GPFkjXByL~wxpzSAMJ7P8q>hZ_O$c)B7!DHkh66f@WYI+0zsSGQ&N6NYYe zFk_gk1tN84U4%4Vw0@pPNmEcOAsWQM2M|6Mj2B~)s_s$&<);K2pm=`MSWL~;a(W08 z?Vt5b{Lh-mx1#XuFZH6T05h15umOw{?2#y|IFJB~gLg7?s5nmMO z^Vh8H)HK|;;n!Eg(~JAOG~|I=!izB|&&0(DY6w? zI8v*PSD2_iZD~FUC4rJ*qR8lB+xqk}8Gz%Uq_Ox*kb0^HV*gS=0j`m-#|Icn;iUOf z6u5mpeK$rDKl->ew#!&1nl|!%_+)?@a_}2ATM3&l%`bREF_7X7HWiFPrSVwf8uok7WJ#l7VycJJTe z2!yE`X|7PU%$l9P`;uPWItVmFV#}!3aqBTa5>UYrnEIx7ENvjyktQ@tF{92^0*6II zl}G^ByL{kb#NZ8GDQt^~kS~xh)bW&Hf`%U^Vgj8|h5u-e*8Wj3aoMu*A?7n+O++YziiWJz<2RwYo{|LzTS$vH(V@MXd~uT3jR4o5iOqC zn5|=ZMitQ74gi;IOIjE45`e2tISLK!Na%rsaUr(3y$JE&FnS!A~KbED51qj=ba9w*K>+NrQzv>%$BE&;F**jNQ#qK&v@gMGYypWx5@ z9!QDXiXOonL{|Vy;D6>Pcq8okv^?Twx`#xk*kOI z80_EjHx%H<-odv%1hM`?Xn~)fUJFv?B|5Wj$lPw8BZ#`E&Mj`9abNup`wtH9*`Hpc z{e_hBxSw7r0(KAY6Xz3o!M72|hxfolvT`sOnZh9$OlB~~U#JG^uNllf*z7|*SjC_S z79OeRfp49+z>j@}S^O_VR*8$hwebY2TD!pYi0CW<-%4A8Z=Ebwrp^yMnTTHf#XGZ` zHwpgvoH`HVjs%khr4e)h#cu+zfhg=o`G7-w(ZAz@-1!NH*al6A zi&STf$d$|LHz$UOT$r=aIObaNAUs+8c0mhOUypa^UmEEDr?EiTG%-am5fAUJ-V6UH zEO7xhB-tZKk?!d0G>J2@zkDa$*KL824=alW2rA>Lg85UOP^6sA!FRy8a~dgFCd#x% zXTxRR$EUex3sr$M(YiANlT#Kxs{J7XeO|MhF88heSN6yi3}q*?#1vi0%2(W&^>2Fw z+Y^L~Er<0!9`=j4Hs1lG7ckV)=f zwXrrWZw!G8))o4L>}wC(5u zv2Ft}kVfL4KdhHZZSec3zi5M$z#=)fNc4n!=0TatCe#k5F6M?>J#}C^@<+;%qn)C_Ef|e8D8Wm}~9Yza1|Q zR6EcOG`tOFtJ?CzyQWo0tHg#ajCCY&b|iT76a81$nQ(swdr!(deuzfS|PkaY= z6gbO4|L!O}1!Fn}wi>g2CN+Sh2pEFW)0f;&zluT*4$rgT;`2Lwz&xmLXMg~nr(e{8 zdtl**aIlb#CHCzME$=f}7EEgaY=LV*R1Pk$K7g@Hy1~K$EeY!Wi5zS{vO`UwMlRE`{NMM|NV@!CUvHVIz#H$53#KP-{0P0IR1_;l2i;J@pZt>rz(;$ z{Ms>8VW#<`Uy6?By(o{H0%O1xkkSUg0%y&jw@ShPeHTR`>*fCZL&v1x_$EE@u@W@7 z0Zt3p13KIQ@O)g@D}B-hQEdXmAYwtbo8Tz!e|k<52ue`RCO`{<8HBI}p!nF~fBS|D z;@ARoLjpHIF)QG>R2fj|3V{2g*IoHT1L$A{&;s!c;+h8#LX3da<^l3RAoJT5sPpTr zQM1HAtYH`_0p9>Se4Oxh-PZxtWr_UeJyAL9{H1NKWeVF);)J5vt8%dz(js=+B9+Vz z)gXNPmjza$LY@6CNpiae?)%WpEp_}gHL*nmg~#w8=)=Rg_J|rD)@jCAg3xMBWLS}0 z$m)i$i~jwi6{QtEQK@Z*?}FyCuvkT<@3xK+XGV_D`N zLvIQxK|Gxxs_wJqZL#g#X54Hk8NW|n=Rv7(m^M%zXJVa@<} zq5lrMAmthGFUt!`odN%{ZJ@Rp00{&Lv^E3Kg6xC?anAzCKmIc+fedE>JwQK=RZIoV z(wkQ|QI+#q#ieDd{v`k0^gAmJh}J0PqknteQU+I>k$>IpaaL`T(TvaoHZv3?>~(ZO zS2`?Gt5U{9vZL8j91IJBhgH}Mb-AbgrMm3}@NOl82>9y&&6TF3j)L9oyN7+Fq|MpU z;s65A(LMQ|(0N0k)Hx&mwhKBTz9G@Zb+F+IY1=)@Ep(LUKc4nKjy8q=Od^h@ve)aw z*AKXpUD?YQxu@0{5>%t7kT8H{*!1 zyof@gB|zjT(VB&CR$=nX3v!-T#0o#85d{}V62keKo4JZ>I?J%-KB3`WM*J&fh-=FV}V7yPZ>m zxCg)>gTps@!dmp>|8aljF|cN$nB+R=)+oBb=OMFBGn#HL0ba=EFiOPL=>qY zX>Vz8+PAai=4beYe%4Dh=!HJHE4*^WH*NA+Tp!3OB$~OM=U23^N-oS{EAB5c8R?Q) zZ^Jw|)i|uxEqOaw|F60^;QviO=ON#>bB&Q;vE|p3R{u*2lW0()+#`Go78GUL zBjS>?oXOqG>IkAdR2zAYBXeqS{=lvmh}|_SjtI+czU0+oAGr1uCJYG3ZfbglTVOpHi)cGkVsYdnDSyW|)#Hj0kHaR6C#- z=;kVFpW)=XV9KN)fqt$jYmbdDn#$ACspvmI)PxI~?E5A?MAQTw0e4B?rg~GBf53~& z3_sRUk-bjxbPNsd5H}TuQt=mr+LVikXyvBrD-E@<9mP`lSY^G!Pq&e-AfoLWXLcZb zycc|lM_Hc%&%lL<)!5V%bRHkp1$Q@-WD$lY7@{ZER7iD+=}9_f{%Cg#XS(pzY#19250Y_Vra z1y)33k4wx9{m1#)-67yR@+QKcoqrPy7~0$j)Gn`+WWO!9v25iRRIs3dCkG4$J8av| zQWFh7LG~<}e25B>_|%5KlkbF~`dWBE8g^+B*8W^DK6sSvfR~G0Y~&8%=f=k$Wm8-Bo6u@PzpuV)-O%ZTT>> zZmtFa3gzH1;-Qh*@^3>x%%;CUrOjkw2zTm>dF$?}*yMT@^92hVPzFAH_B(hxQ$ znJy0pSY7X(Xn=i{hI!<%R+s3S-qY072KRq26yakm(9|pb_vB!QP$zb?1xkY`)BSuL ziO=L0X8^AMGHGcrp0~I0;Fx0Iv_oICi4`bkJrg)HkqE>Ikf}TJK6eFq$KbRH`b(=y zqwr)`@0VQX-an1rGdK3;3`hQUxVnmG4fDWsqL9m%>zU77V?^l-%if7uOa`y^l>AEg z2wvf_SOY~{YIH(P6#$bz%9b+-*%dwKlv!Y2)8lAR`tJ!#bLyVn-0Oi?4vk8t?-!8d z+JP#fW;R8*Do-KS%SC!051Bd&>ZqAVVMFDp{Dy+)3&$4|cm^y3SX}V3Mv??LG(BY= zCQDR<3rZSgBMVf@jAb*NHeHCjbU2TGSWHA3oXn}!z|ASB>8h7mi?EDXTP^PV2vZ7F zVb6zg-ed*w0r0hhDBGKC!zZL%ZNGW>P5?0i?ZPhBg=R4rwj(-aR=7mj4#Kz+ALJB_ zbENiecQ7DKzd!-4d&6qWoQT@pwJx|vk(sT}h(DvBvSYH(7wOD&6&oz&T8y6c#yS3~ zGMnaOXE|bdLHzl~!+_kU4^>FWYh}Q-_0x~vj*j)gkX>lcpLkoTl%2uWq+^h7W)5My zYZmRy7df`K(*d+`4j_Q+^aZ`11LR@ux0!*DGN6MaFy}ELi2NA9kJjNx$rSn!j97+l z4%uq6b4CwxJO;=@dU1l#rU1ln#3vU>(27E8O?$@xT8K~dlGmZO>|f)f+@6>)SHUES zf}RT38;u~!Q?SGEKQtlK@2`B{nCs)%ABGJ&=!w2nOx+J!`vmzu*sK=#1D|^AF#(D1q%5C_64Ir8-D=gFrX@fcAz*2 z?hNbtSU0Il!0>A*m}2#x~fg*igI=nlbc|Qo*rd& zAAF{4gez|TzHX%XI+=2PTTexKJVFT0-JhE{!5ox^ZaGenKhn%;3H;eyniQ7~0!)ejWn73&Ug!pQ3p#dnpHju6*= zm?UIQ&60K%W#0W7*10%6O4jx)#>&AIjB)G!ygDqLsGb@cf+(PfbKIOJW`FcL_!2m) ziJ1T_>d$jzfbVpxjuG3^#Ps)Z?9XE{zX4yc3;OfoU-&q&Lrjz&DuV17;0N+9R)W~E zLs;{iRU#KUB_j1e@f&tz{+yQ(M25W{oRsIFbyZEnK3UHe! z;jnvyF9^yeN|JAxc;I(yW4;-@#W6F&r(yIM7FNG&RV~A3RY-9P*r&c#Kr+nYF+nfp z>M&a!5}^YPSH0ur@V+TLSs9Du!fFq4-YvIfVk6xbEL(5p;2}lmIou{saoP-~9=}nS!*%aeA#oUu`FDuD`o6`AKxu4KM>PN#t76W&j6Tk zSga8fToSY}Kgo+WMYKj)skLQPg>!2;VmQ`o!uVYRD>c7;MpIPblJrTHNi>v#@NB)3nyDZE{CYcaSP@)VG%^VDjb2sqO%d#_Gn(yBh?$M>>Tsa%2)y0)8P|VtMHIc|ph$0QE-q4${F1nT z^`fcMV1p?4u!5qUb&A%D=%Bx;`Dz2K$zt9LyA;*aL+|^e%a!rq7{nFN8eujluSg}km@pJmC-&Ds{Ac7Ri-=7*d2_R^`7OV1^cC65 ze#$JtlP$B25SM^I{vpwNE!Jw-OL(Jg;%zA%ww-172$nE{*a_CbF5)8*VGb%#n63Z~ zG3Th>T4+8oFYvvw?81)>4&6oG40uei3BQ&=9i7NdvlgTr&fu61H*52&<$UD(F3j`EH`E$8cgF z>xHj58>+vGOUe1!O&q=ST0{Im>#F{MIWa*U}$O@W>hVs z#hkUyA!F%L(ZxNrY3_BbP4-7uZ7Yt_C*>D|s8{$``?(IwvORBgy>+SyPEMNKVz**7 z5o5(rXj&d~xvM;gn*LHc^V`3C2NlnnSe^4_W!om4Rk`H`4O?go>3392CAF8N3^DUZ zCMBs(L=`u^2W=2`>heNBjz8sXXnJz#?hqEy!$OHpO>Z4a1m~1AeMs6! zn`YR#4Rvnm@`)KCSw%@)ELG=H3;~rN$4({lVDfZm;76Z3{b{r9rY*SBtzq{-0Sm*=>-a;p_ES@v4d%54(9Hi*bD;dzqrr~DUMJ4P3Y4<|2NTnJyk z5>uYnLnh_uN>u+_&bpWMKXNo&$Fs*`jCPCEibbbCaQ z@}p}u$eQ13)Y@2j;APJqt$A8Xt;#YBjD~l+IHmRw)p0w3Ouc;Se%~k-Gds?>fN(a& zJk6)iHzhiK!D=uns2!E_KpT79La~AM70oQTR`2)@a z&NS;-Trl+aZv=RTr3K|itIanU_yqn+x`vysQEFnhJhSfCSA`@SJ51r=wDlj%r3#U? zET1S_r>+};^zGCOBWiUNpA^Si6jvxWD6vFrimI887^nJ+RjSJzat$8C;ykgg7Z)%7 zq|kQ`x$NzB&b#U8g}%SLOngB_q&0(nregdfgvo8i@agPp&k9uR6;xkHBViHKNB4LJ z+S$)h&NS9?2n4^k(>KS%Ys7(xdNaUNM`>>QjDe>mV3XeFtej5$Tv4gsyyKRAXD8!d z=cF<1JGn9EiFNevCS1{1>UQy}mxi%{Ms21O1vOT15`)_?82_CaI2w3}?Sox<)Lba% z#nj6`-gxUZwe3vmCsC!D?lrOmEiL0cc}dOMVxjx zOI5sq9$2N_&U3VHgU43M2nr5YBao!Q(U>@r=Q4w?nO`FsQ`JK{xM3kt?^*@a<=U#S zZ`MgBC^2xO;Y45HRQa(L0}z|qtf{~W$mA?DbK2!PB7?@1U9oXGD!@?zR)5Lh?CtT{ zbVO$!#o!rjpLAP{vs{AAnzB8PZE+eD7OsJD@7lUIDS)y1M>t|r@3jgTgSnBp@r`s1 zV$tNw2<_*QOf=cTiE8?8k-YBVYaN%jBA@*i)m#4rFEdx$*V)5v9&bnY4>3d;m>=*2 zxQ{$~^TD3b7jT)ii^JQoKWyo+TdF-CM}WIT6kJyRXnwO9P1H3Nlt{w?w)_p81e->D z0fSJ1w{N;}9WVsE9jD`}zy>Uz!T&!qTXB?eP5r#7Aa;>iaTNLGhiIaVdg5YmnXU`0 z@~oxBG?ipk6|xkR4FXF;G2Pt z5J#e0iT0q$<5Id(v$|$Fp=lR&WAP`%>Of18g?0NsW7{R2K;i!1?3%rR^CYZ8rd5Pv zRNVdFTxk>UJ5i2QQ_^|u`sKXd@g%&`l8Ooi@*8xt{MV@jug~6E$y=Rn`4m2HLXl$Z z?e^wo668vvGR_cpjU_WkkpO0%{=1LODOed+T56y^HRflX`D(P39 z^+RDoM7jicpj?F;44K={ibfFx=n~@lZ5qP{5--Cr_D>?m^Vwv#Saf|HAoN6))$XX{ zD^AP<5wq@2>9}QP<@ulVEQ-?En>)E3Zqy0u=9Ze3E8ewPDU2=U)L*>f1r;M{|4ij> z3MvNQZ-dccwzriq_|_v1E_*VJ)? z(haX^MtL(OCTG5&wRS9oi!5xQ>>BgSHIGBXqAwR-*=Y*ks@t$A8x>7W)4{gq-IPhk!Gw%Z!>>UA~0Kc}Pb*>6Hu2p;?0nkw`R_=3OSnAHTro{19G1d5)lr4Ektcv`Pf zfW*T1lBR3!uoDYgz&6Ih+tY0WuHW`nTqLmxQh{G%@$|#gTg^}z;mPp^ zAE{3iN5miKyp(m(n3z}^^XDe7#7*30*C)1acv@;{W<2m zUS8RQ;Hd?shfW|c7;V3T4of$H&^gPLPVdOz!>2tY>%^EEahDq1hLg7q+LOD5 zD{nv*;b}HTuPQeqVf%A{0qqlXV~6i2)#{I_8a9!YbGn{PM`;)SA*e~C+OrnL5@l83 z!$&Q}D;J|{vt+J(0#y}HRQ zs&$;4yagu{n#ige9zzd^^_4wMKX5cNoDSH!hqEoGkZZIj=)fu5P<4Rf-&dR-wQJl~ z0dF6wI=ZseXKnQ%SgW_?I^x5o74u;Q<478d3$u@<4u=HK5al#9ZU^YCQAHk&YIDK| zt`Vk;s0e1T+dC&s#2>|TIr_bvk1ML!xY@BAzV&@+y~RpZ1DzaUZrlB(Fj3kUZ5_<@ zRn_J5Z7+d!Y|&?!w*xL+-~Wj;uhxPP`E`?BBNEITOso*mo?#C{C>(~gp==+?UH(Mc zcH=ZP2>6|oaQfLAdj>W1HZsF0*iCsqX9*GtJB&zn$*{Q$f)w9L+IgrJ^^+s`4ERce zmK)krt(E7U4$$gt8G5hUL;!5C=;3z4y|FY!(oc!y(Fg47#2D(mnvcmiHa}QL{5%X zys4aR-ctcxL>M_Cmp^yeITxmO+2r*RM(xDR4d8FgHSB0S=w$vgsY$$Uh-;!cmuk{) z&0<7qNg0tTw*WX!avw9G6Oq63=le;;r@4eYndD7GMB_vSt7?x^!q4*l{=Z_rCc~=A z7ZW7>*nS(VB@RSOLY=$GdrZdDOo)=@xM7j$I?N}x)SE-_*2Fb;&Y^4u!K(!bZY=c$ zzlZ7H)oCvi)EeaSb`B=u_*tfp7*EZPz>I%Hg&GbPA%g{uSpexjoWwSMu><7C_-((Z zs(%`3b$M!c>nLcX{hfK#T6_~Fye}&3){4Xb<-%^IoUWR+V&y6?D`6zD$5G+j_eujG zG%(t-$yj!42Bl47T`f$P>j86D)C;Id&;k46ShsNB4^er zLr~VYrn-lbv{F_UYE9k2*2zOv{P0B%j1!T!aOX1yKXc6^Xn*gkL~X^&uM{r=|1#=1&}s zXBnxL<32O-E$3O-su#&}W;-t<#U(J{XNZy(!?F}Tv^9bof>ND_O9+nqDh^2W?W9r| zr##nN_&zwxgbqO*lK1P)dN1JE9PzGZKwQw92`fV#&v*Sz*sQLhro{N8Pwnx04s7Um z!6@iM9RKniWX+St7ON~nh*%t50(Cc4WSgQ@z6f4}jqVeb#~Lb)WF3g~tQ(aabX}IH zAx8bAKYhF}=ZXjG$=tj?4fTGpKAkBq`kq|nrgm;?AL zgc*WK7}mMFEwen;o*{6==$s)-qKAbvusc8Zo{VdeH*Vl}(aXGBbTObO%#Hl!X%iIJ zU#zvqE1B;pq<(+dmc`$4kqrD;U43X0l7l%TjCdA}#bdib&xCl^*b24PT47mv3CA)q z49sKLCEN9@UtR3Eu@ZQlb&bK2DrUImIh_vr7>H`Q<^-h%x~jzErf#Kpjs*0%V)wgB z)0t5a>5SD|kKp%R1Lr^4tp%@_J^xa>w9s!$O&Kw}_hLFWcWcj4XNE!jIlN715-1ag z99)(DO&f4Wj(JUX5E@00s%wPPG5Bii0(>vhtvHs#@P}fIZ{{-({2}#L-bzulrMh~; z@Wk5v#nl~BpxFmDwwa{a?#Eu_Zi#I#FE;CIf3(lgR1n)Q$6E_{a_b>}TbDv&8(r%t zysWivO$*APx<2nYVildrd3I}rtu3vya_ngXvG`cpPz@5FYC8jt^kojx5Y!e#dLYs` z>IPY3X-Zi~X_UXW*N&{*3^uy>Scb)PqttBiJ52jH`n@Prr`<4Di%7ZCn2YCP zK{Dim+6GBui+}>JP$-;BwL!*9R3S;+p$b}~Ppz8|j!B(mTZ@kW?hS?7G6G_vCh{YD zQrdBN;|+{nkCcj=sWXgE+yuEmN|I5_^hmVhKl9RX-PT&HcoQFgMF7u*^C^>DA8 z6<4#6KKG{?{8(aDwg3?LUh1hG{QfGR_sRcS?Vl)JCJjeh>tznmh?-6^J2*EK!d$`N zHyNb_tvG#7Z-|4{WyPB+i$1g0Em47zBCM&p2x-Ybb=(W1qHcjip1oUncm|mpe%LcA zi&tGMoX3m}MocIUhLk^zE#X(cd`10n@!3q#JeXJ1DJH5Z{SjF4edKn#w2pagGB&a7 zLM~@9^Jwy`MNRKi3sWB2ochU}199om-tkc<2x!9;u8&{swTXGfH-Nj@sHO75L3we>7h+XYnlLT(m+3XM26^>*luuDvWKdb7`oz$p*&qS%eaUYzphxl|i7*Bwgw zyw=)cuT)D{uL`a|fkhw<)XhsBkEA*LO!OfgncNLBu!$d#Ej_}NzfkLw2u$+vJV7Lw z95R9_ukS-Y9I4F=e0x2suK{6(cBV6`gZUapVC=pPc0FUr4mZW_+U~;mjf@ydm?U&@c5nzR+LL3_P0mjgu+O{o+ks>sOm`Z_0 zzY9+&xo524#BdW~&8**cH)roiq<7kM^=v;UZqkg0K!aqTU}SEP<1nNUQP^w-Dobqd zo7#OU($y^RZR1l%9unh`w^^DJ!qE4HVhE>ybty+cOXDiGt93^a!LsQKy4Kio366?- z;w^r|F@Y427^l(jqVeYzYoHlkP+$W-W4|>l854vy`oDMF@+wd9r89)}{S0S6`So!>?fRF^Wgc(?VkhU~5LQ%w=>m78>gg_xWNFzL>)6eV09; zOC=ME-QlonwtLQ{HT=?H%eAr$^s@-|pJ!LU3}fB2IA2onLft7ObX+NuH#``Wk%ald zxS^h-ALJM*ZHXfp-67o*f=<`w@%U#b?YTepN272P;Yqo~-c_p40C8v6sbzJ+t(^vk z$(lWhux3pBsu4Y(a>dWcjhr^JTzL6vKaE8>gdZLz=LekPD=+Gr_5FK>z#7cs-xu5f zYsZ^{&5Sjx5S+6F2nYT-FqpRrqV=e6K+~G1KvbZ z+cnhtxzAzI$E);)j{YR32#~V%Tn?wotsG=D#pf&ED#&?;JS(wz8kV_f-FW`vt??|s zuxJtDb2xcq=P2)z4E!ny;Mxk@acq(#!|XBVnbOx~bpMKa7dD~3A##I2!(RXQS6*QT z?_91Dnzo<`4_%#aB)c=F_e3ovX?`5xG1Dz@vY9jEe0ou747-y+?IW_)`}D@$HSgZL zxFb`YO!k#Zu`1BG3hu0SmDHj=VGPreB>y8Q0W(g>{04Lm#6e2=w9$84If=?<8o5gr z(t-yR<7&3?57V^BBzEmw5}kK1%PaA=J?3=Oou|lsh1MYSJp3>~XxUlsu$4sGI!O*n zC?K&PbNPOKk11HW+-kqkJb{4m+2q{+Fygt)peWl9GJjD{=+$$d+wXS!;Ix%SrkUoO z6ZXKKEiJIwGWm{!KpdGSYB=n$IMM zEYyI#X)MU~vwH{ej$;6?jECK?ZYJLQN06F!3m30ac45KUk-j>?%r zu4LDGMxE*7qj7;yT~l!s)5)cok1wKdC(uwubBB8TsFa;^+$@feo zQh{0{ySm=X#h`U~dv7U@g%__5m-F-}{uH$-pqmX}NCHijh~i+)4i{&h3p)R<6T`c3N=~^8U4Z7OC=Dm-qw0PhQ-{?QZYGl;Le^dJVQCdRpYBg?i21i8$jR)l_yf z;G0d<-B$tj1U4ez_Nfo+)vE3eZNZ48r?UxqD&<9twcL0T&IYB$iP$p?A!D~3WNidX zaegYl%Bd$P1?8Z|y|m0-LOSz;R4j6Vk!|1*$+*zwkK+$yoxT+fxv7u2uFf zw>MqY;|m#upeY;&=FXYiqmgu^<$irwt5_mT$|&Q%B5&8rWFnEQej&L|~n%&c6d|biZQf-YslvfF2l4;GxQxCR&`& zyV`$A!P&kYY}a7h0@Tugyhr>m73b{iLd!K?y?RC{vfTkNu{dY9Ej zcU@phhh@%566gJ>%niFIs;KIrE4)S3W3$SJabdf1tPzT25-o`m@z>ztrZc4aL0;}_ zy3bnMen0EGE8bw^#0@Bgr7)er;5JwgQ}2IXsccaV_DR;X&9!aXO*{5a{4MUb9iY>d z4Xu5$zY$@v)#9l%G*2OjhY=fnk09;c1GPsnmOo(BU?GHPI1my2jIVc?Q?z==r&?M-$j$2l0Ou zxKtYid0q4n{Fm-GxI%dXQ{_U@_?uoCcj2VEXMcSUX*<^Ne0965=(o08RW-&ujZqjx zj6QPYjLWdzz`tm$J?_e)9Y&!$h?7 z7fTcHf5c%5+0zex7-Q0yMOyWB35kE!Dd_V-X+ z?Ob?%T7yDHisuAI)1r?leBv8icm1)b3w#v`Nq8EIt(+;XL#-3XrGkC_0r!6-hH>v_ z5{F6Qc&rJ7@?7d;-jprJ4m6pMf(%cx(*4A8QMp)RYIv>f!8cYTwkaskYY;q%(1J-x zgGg=TKB7MfaS?U+X_q01aKrFW%Jt*PEwLNvsNgLzw4n%eQ{eV#{8JsAaS@z8{L#5j zDC#1fz2QpcJcZ6OQ<75}f;4}Y?RM$oxQ5Z zw@-_{Z_BC}>@q9YT?>CRX4{>u+s1BDf+R*M$fV+rGl=3e*wq4($LgMQj+>kMg!=|q zlPju}h6FzTePh_m&7$qFk>WHLN$mO)o=YA|$X!brXti~^Jfya zZnx_lzC&L*B`gJ<^y_nwbKMhC zybB7UR<$HTry+ku!*ddx|GYz~Zr|80tL+LID(cU0rGSdT3h^9No3S3Mt$VNF5-+yk z!Vtl961rj6Q{0_E#`s}yXf$We$W0Jy= zyZAFLrnCxHFJUnv&~OxVUcY?GkQ(_dH+M#b&pxiqfJx-{UPR zi6Jo;Lzv*<#v5c8qq&|N3CkeyyFn^*&hB@EC(yp>%e6!0>k|miiU0NA_`2uywU=qrufkGmICA!#` zkbx=B!}Z>CO#88iU!q#n_Cly?MUGVCuMkrKBAIij;ysSWq5YpkeM=G+JSTn!mogm+ zB|2g9;I7FnR{gFY>;~;lq~ChG9rU1Ko(~iv& zEjKC+hv~!EGiVszH9EM-|FWw#m){)a>2uo)J2?bmpM=5a12x7XX$cc2u@TEM;79*2Y*tb zr4H5uZ)kP9eM1BxDViH7+{SNKE<~5X<5@SL_A~T{PS(kxCT!zV+NFprf$1rj!ZG5! zc_EI{iQrTx!O6W@h6f8wW4+Cah5P0E9_@lFqd6sMV4~sksxJ@M1Kls*Zr8)Qs5b~p zfZT7mCNS>H6m&(-f!d#--q68frZ&UoX1e8pW z66VV!TzFxb_{*?xrYf$dLWs2$G`M@wL)N;6tn>6lKWSZpngntkrXt-5Y znUqSWQ1Z)^)^t8KIOQ{)N^rmHU$q^|Qwb8jQwmXgrgIV=F}oMuEh%b%=zg?XtuZ1@ zKm!WqI)w<&F&z*doA=&pzOE)}{kSMc_j_+a*v9egN86w1KJ07q=vHGDC5~+p;ilro z1grA9DW67Ii|1Oh6aq}nD1T!-R66|GmSfjJRqAHi6YKO0r&_B7j+k(vlnX6Gd*(me zep_|L(BkfK`F(4efMLN>oeHl0+(+t3*0cl2S6@}#2Hvj8?Ap3r!FQ{7nF})4p!#t9 z5oB;64UnAoT`TRT)M_t}3d5XK&qX{J;PFB*fzyPzcoz9j5|zLUB=eB@!H>bqusqn>yv^$} z1S+}7Q)sk!XPArkJHzh^yJ;a7oObT&(Kf%KlR0#@CgJvR0>04@6FkRto7&};LWO=beVGX!=bx40ehCc%{yb zPQmlhoT%VwsaNZNYGqMsK{4qs^v0fL!89)yDp+vZw%&^TtP?goL`xWJjlR&7L1e_j zo#c~Zh5N|IT@`Gk2+?UMY7irMxXON;lppVGp^uD@7NY|0Tg4B{DEA%mhkU0$H z#!rk2qeZY-ahn+06WCOVBvzRTqs+_z)w}<2pK#jB>vzq6vTHZktP2LJlhAGjeKn=R z4)It;x&(iyg_3EAr%;`T=QC~r>)Xy|E;MWlY@6nsX_bP4E2o62;Kk6}q=vTXVU7l0 zRLF_YDeP!*!kIL|D&VbBda){M5F9V?p5fwD8pe`fMst>j!;Mh;11&N4C3K#^6tDA# znrj}Mx*ivQML7;OYx}{ro1Mkz45eZ;g*`jak;-Mz8ID`qT~#Hl_g}g2qFOcCqFwH8 z)OWKt)v#{IA=?zcwq4e4ZL`1BwQxTOKZ({1sbn$*zv=KQB7*J6GkAyAUNBptg*NdI z{6aD(sSXzP?_+zpP_^PTjSQU=qJjzE3Dm0jb?kP3xQTJ2O$tS3o-38>U`ODD7|#1D zR7sjAp$?qsoa zZHJC)50ns6I8Vum%)_!#dpzBU4-PXXrzU}3C(qrV!k~b_M5o#;I`@$WbiHVvOOr;I zOhW_rUO=0o!M8NzvLlj0LQ5FeGE}9Q*fiCu!)7=jSC~Wz$-O)7*$Gt}CO9s-hRZ`m z<32S`4SHjjkR%Enf1rJP*!aOZ`b4zf%Zk4pnVX#42dUlGMZbaiTvo1K8q{`ns4yN| zBU%yI<>#^E%G}p<-!+5_6uP{8Nu6Df^>uq)tWdJjM3`iDOM>Sae!;6YE~H99UcnzN zltHoaQ#cUkE$U*q#3y%5sZ3#dFk{f)e4h~kC-*Ui&VBaAe|Fa}pWE;H!D2gMLUILd zrT7aEklc#kGxZL(3aAY(xF|{&64txTcAYit65XOcNVm!)f_9lp7R-F#Ay<#h>dCt| z7yNyp(~}FCeOqj*#_N##a}CS3!58aGnnbXlQ6X~@ET;$I-kjFJeno>Akpw@Pv!Fg+ zh~G2@Qx@0Ne}M4}08oQ70P(j;h+x#rc?{28XhTMiD#9sC!RCmenuJC#e%Wo;ZM8&s z4uxyD*pNV-UK6217dHOv{@rjN_U3XF)_FkT{6hkIYhXyq1P$rWogLPYyY)j?mBZNC zgN7GYW;$mnT+f4*Fc}^X{B!4m`pzp3mBY!MQTKpte>=Nsil)RCCbC=!mW0+?<{qrz zQdpQ8+HGd3g_H?Ih;T_eSHWkj^Ot;w(^H~wqxYuT-)Fwik8y}l_s4;w?IYgiC?%yv^?(Qove+WTANP z`(@=1^n#V4r9?SMaia5xzdt5QL0mO}>DdjNLm{yr7jT-b#P)n~q6A4{(b)Z=WJ-rT zf8T*t3CpTp!2D|Lq0HejXNuE6|pDk9i?O!;DZS{^>iPq4${2X%P62)CUKFhKQj0@}CN?iLrIRDz@ec)ww44gl0ZM@W*v{M9O{7 zLn;1h;sm3n7AGy13%KI->0`j#Kt3)ke=d zsZ>JA_{$%lEJT8mP~RXYBqd}oj7|01wA+F_*g$w>^!K+o#&RA^2aXm8q+rl~3lmeI?zKEr zh==xVg{{=c8G$hYY$G(#7@oK@lZB%VyuFtYf)QG1oFIH?{8C z&El{hRtzu(`XnpHt}4g6=rZ`V-RD}_Cq6m5hUl>>>*E3i{NPnv*Xo3=!nhx5IW4GGx z&tE!Ql`}^1sn7iGT|q^1e`82+C147VrpT$WW4G%s{$W*=X`#{Oq92KBNJZi0Si>S* zx67;xmFp@JruY=ZKN8bmu+(+y-LT$NMGPz@zHZ_JI`&^mMJbeuzSJPT)F8gpAff>J zr3Mir)h{)OxPX4CLBz}UOAR7os$Xgl@iF~UgNT6TmvM*Bz1;DSfBxMMEfo=A6o1d| z{iYaf2lIQwRGBDu1DtF}r}E=`3&|50Mdu`Ef`we@_b?%Av2&vSAbaEwoufny32HI@ zavM*XZO0C7e|5U$A9NP`_SDtkN^r+(!YnbfwC)_%C9_bS{J+&D{R|~ zWQs#@0sIJi1JLoHf1$0nSL32^oYoBphoi+r2?qrkWE(mkWxqoz65{mSc6QNWHYKXy zK>O#|4LBDoev~CeZSqh||7zPdhZ_m~W!RO#8=jyR(aE;&)0nvnl|Y2ggR zr0IVNSsPVSLPPe`Bm3lPLV|~amOoj5)pnT+HYacaL%fLSMNvAr)TmMV)5|ibHu?Rn zi1UUMoMyPPe}hXUJmxoxw!_vNpgd=UVaxb__pylS84T69P7}TWLTtF)bEl5a9kPLk zhpdYKH~##=O&tb*Yy(8Uwss3?pFeYW95Y1*l2DzyKaZ++hujNSs(+(a-&!xmuWZ+wgdix-KGek2A@rRKmDfa)(nRm4@t<-6T?JsJnuc=I@|b`0ypwq399>Do<(o zaI!^5CuayWrW>bHEF6am4T`ly8TJh>8F3%>!RQ9 zO_pV~w9SAGCnth_mVJ*;+g#1LWWkf$KNRKII6i0%jH^ZBKFZ%7qUxAWvGSy{ABs&ol+G{CUkby6itaOtZ*+C z1#yz-{UE2g2wB#PML$>=H_nQxI|%}jK3l*GHh-h%#h4BXA>8m<)NOyed|KA+a2eQ) zxv+Hkap6WDT${SVb`h*JPkp@dx}yhbgw*u%EiZo0Sn|VALRXQ~NR+a!I&2WkLt%9A8aO z*t;$f870mP%(;JtLE?W;?fL{YXGFAmd((8>m^r?gSFZ)Y~0Zl`0!GgwNh8ulmMVNb;jvdIjgFZiKBg0}@7m^6W42}3K5?Q~~ zgvLMkpMKbc22<|Os|aRSf3!p4Tw+ldeQ!aQ`d>bE-|Mwq-VuLT#oBFAF8z0ZKw}q* z_X3bworyqhv{si@-*!veAtS|dN{K+H)%gHJ{MY}VA2=%Io_ED%Q0>1i23y;q&;Hdv z`Rcl@$Bq3@pk4MysO=*INu?m->D`F`M_cq`XE*yX$~z!`c=7#D&+p^-L$SzyvHkG* zEsf=j2pxLy&O(367Q5`5eyBi792qcfxKU5ps33%+lim5<(S6x?M_Vd+1WQc_3kD&- zTpT&=e5ZdozJJK}+<$*F6v`zyK`sA7ALq95ZESCWA|wI$;1R|+`HU@{PyPJSoM{$H z-)`GoKQ79;xUL|R!v_sAP@cr?6PgPdeDdB6CocjT*Z6L$e*|cRaxFqO_I-2Z{9xO? z>l5+LCQt@js0qm5f@72lOdy$9a>~bp@*fk$v+R(eBaBLd zRjceH7~mHPj@ze(oUmrbnZT{?+3-V}gcy1FyEVpWnir3lJ_`Hh@id z=VO0GC!qpY$i%v8wH}baZV;HTqoKv_Bb}iM5k9i;YTRB}0#1zbZGi+r5|_oXPy+t) z-RmVj`^K4dLmZNSmd*K3kL%024QfPRZp~bNpY+SglFKzep%fFrR$KT|;f2(dRnDkN zph)R&&S*2cymgYoAtOe-PGu@(Nl-uF#)N+&ldt#dQHN&^87GsAJcXuq#+lKc-Y0$rV-5h`^OjqESCcJarE`?<*Z16jChRfJI?QtHHTo(Es6Q2Y9JQdXf8E#s1c z#YO*waTf#YU~0Xmc2Gn>8ftKAa=2ZAY4xh06b(D>z+;Dv(w za!c?62z|LFh(9#^l6PGctuMC(u_J%_a!c?cv360R?|1TO;9ms^4t0O`vu!3zQPWw{wQpf9%sFO1ihTY{GX z%7uG84_6BRR8+N#A&OzJn=KsQ8Em(4&lG%f-|#<_qzadDa9V2FqIScXEY?@@y)i{)-3>Xzli$;D}*Hv!WGRa!@3^!`{NRl(p-n0 zwV&E%RWz$^YI|0=OI1oT2C7EUo7coEbN2m5ZCZgUYuc~Vq79FfKt z$OAOcEQ&pC-a`v6vXt)E=&Ngc8oTdp4V^y(8~ZF1zn>mgZdj;9<-)B&>6p-;XOr)fvtq_@8elbD zrz&rSh*$?bgpxw1Fz7*<`=+5CvF|UzrcAD(>lOc_MTs!M^Rq7dx=FrH=6%sxmU3Su zPr|Z%%jo_%W4M11SEzHYlBgoWWTFVxKF$_++G+o z;zy)Xfks2kun;uVu_H0km?XSo&IQjyP3L1lu?OMHVeBmCjx%97l?mi$8O@0fiiAz^ zM>zJtOwPE7>a*woe`<2XP^m&$+Fve?nWoM`UR<<)s^#(T|F=H$*b!$`t26cDayPVF z>(4J%ecOL6ZHEk^^O#d@9~Z^n{p68iMuo>b{%D87#f?Q>^u3?W`Ik@Kr+;maBEbiS z1=bT2ifC_%pT2zZDJ8A;SF30M;Y*OKIzU>EHXGW^eG2C?+pWV2O&bVf+F@Smk5Sy)rR zWFvBBl+j#ZL-sK=o(pL^0X{e_4?C?|-4Z;C@ zmdjjxmX*v;tn3V%r=bPfKRSz9HQCCgVqPi}zt1CZj5d!wEQDuDnqX=Fn``$>p$*yv zgT;UJ*k2?@BvYZ7{kv~|_~9j1IB-=l`f!0$0hSXg``${Z%3_401B+d@u}k*_5RMNh zCUg2(Hk?1TsIyYRh#XF?3=oxHjXkV|ZO6|2KWr}&2y@aDjt=BThkV}ORsHLB7@j_> zmt9q^v3ft|m3$*NCh&er>X7$yUvuR=-vxi9waUG%Ah{R!l?VtU6b-JY+>fe6>I12C zkzf3mSGfCgNrLK#KV3-4NK*}*KK;h|r#3CBg9-0Typ4$Oh^^!bN+=1Py+>vu1iKFON4dAi-TP#Gz)@iqdEvBYnQL>Utt zR{OqzmA|Y|GF-4e3p?t_boV}jxd$&?YFV;Sj_c4a`riL+2w=2(9>cCVXz z4lTTfj^VpjIgv$cn<}SF@z}@QAj4B4xS{lJ`G0SuL5$egQGb#>a(2+VVS=9xNAJ9V zm*q+|r$k6vh4ZA-|ho6uaTi*#N~LOC6N5otX!5Cytexn>rBXpBYX8ov_Ze*3a&69 zlePW`nij^z{UNjZ)n&0cnGX_sSXAHnnHfBS#=Ckb4@>vEG&$o>L! zY_s7VYU{SP6EI|`jQK-g?&CbB@1K8d;Geh;6o0y`R@tJeodK@0vR&dK7K#a9!r_ap z?c8g2ZL?w=+PYo&PRhLyv$i{!U%T11jfGE*5A5ACRD@tTh@=OnMBZ_oxP2xeQcD)v zwTs1Pa^f)Y;GKWTad^6H-!ywXCw7Mn64lCR6{_z>1Btn3EnJ1aZB5&ve2qR3QH1;9 zfOv7yoCqH3Mf!=x{YU_IvvN76?;PKqjf;j;t_-1}H2TM)_m{@8GolJ~JmY?!%sukb z?lY~6W@QoMVTS17k=AJFEmaWU5#u9xV#iRnd0b#2SRS=31}7o#tP z8tp?P_6x1iG7%P>e#g3Szg>hd6L$-}l$TSfIBg{VyZ`Bz zM)H?N@|Q+3;guX0E9X8BN_*IzIHDzIBmt=!=CZJ0fPX|bZccbPdqlW&$te@iT!~z-3)Cx_ zP@#WHRG8MXD!OiMu?cnwZH~w6E=#oL)Ls7l|MLeoI2luNKFy(hTQ%9z4k$gQ`!+dO zp>+F4TlDS;+}LJ76~Uas{I~w*17Q-H6G=l=M|iiZ2AducmFjN7{dG64f{1>8`%~L( z?nCr_vvRR@1$;lZi_8ererYH*xN@JbXm)=!G7#K3fjB`Zu7kngdbe~o-7Z^nMj^Pq z8$v|Ef=VgwWwB|y?HV5q=EAx-Y2-`>8&n%RtP6y8AvKAV1j#uGk^qyy_iC$L+>NiI z071DCq1mza?GEKrp>&|_7Y7LuPD&gJqz{GCBt{m*X{>+>56_aK(|-fgMG1$d}i&43Rrh-91@r9$1FXX8-y z8{hSIA82ztCWnj}6UKSq=ueYnoD;!;5S9pU1Nz1mL$9ga!g7$JXV(=)mI zBYA1g@>Wm#fAyhlP(rBALuOg@+p0r%MFM6JE-Nwn$FDvN5!}wCM$-VIKR5kQENbf< z=BjE6XLV28vK+h4eWl5X9;~rzo1)uIhmoqbFKgQ&RLm#B$UK)9I&1RSASS4t-`T3U zDmwq_VLg$=1)Ks$cDnr|Jbr&fkYM-kSvd~&#<-ADVuni?wnN70BW!Ib%_R*jQNIIf ze;&@c%6bY~ns&%K+mH1CbGucOZFX(xK)`|U8#6@4RcXbKo-%g0&Q($pzEJyYdi$U_ z*>?DzG~@Cf9sgOzEK@3cnfCeGB?8&DKo?57pbFkEWXan@h9LjT)rWshv{Ir;@OaO& zx@^}j{qC{d>Q-KKF8auj!|AASk>9;yP$M}4f(NU!o2o~+dFb9I4NFqdAHmWryeV~K zM=t&to8H1|5Hd)V6B#^#^?4TAKE}ylL4(6eUt5^bFAJY#ZTnrhu8INfXTn-%@{>Og^!=@mF=MJIJBpZu(Ru8QPtHj0qt#fU6ttaF)dY4 zgW|;kK5+3!pZL+Zodz8L=KtlxH3ErCTmnd6ZQ9q6ef0yRXV|tysg#BWljsklhA;Bq zIVD7f0{H`>()RsiV6dlMAWV%Z6^tU%O#0oMX_6|Y!v}2dK-zylWylaI*wrO?qoN~tT2yT9a$4h8wLXUsft0R-FEYOW5a-MUTg8IF~ z3ruKo_d2UkZTAFC|E5@EL-E?8bA3{?JXm`F!1%9qS?1f}>EQuDu)OE*pagYtUSaiX zTq;oFMm7`kfQRWH{Et3#b;W&sB}0zy&^}(^0z`aA;zO|eELg$5N4hIp};=|u`9e|;FAw$0N6M*Q%k zGP$_4qQN7WDJjCz<#U*2S8ZLlZ~Wj;0 z%~<{)WlytqVf$*AzeWldf8Kd;*gPfAwIDPUo0^f8A-&_;3H;K789i z5*{+aXWg*gk1b_~ncPYFALsdBniH?P8@bc;voAWhAM(82Z0m#Y%)TT0yldCZbPoXG z%qMYC<212^QE>31C@gSwk6ig3bm%RPW8r|V7>7`%U+fEA$$A&#w8vnp)W1`xanX= z-dEcPkD&zoXIl>LldkQi?Yecbx-h4yj|ijhv*kjBd)q(Tf0g@^aPtNfp@0;;g2UQo zzuI5NX2hlvN{lp0rl3Hsi4HFN{~5b&Nv`C@J#VMAt^dyd<^y-TsL2@*UI#1cW!pPL z!*|7+FhZHQTaZL|jpz}!WN6NV2fr3}C^mLj7d=8CBG$9wA~(SsU1i;F-N$Uu-Lj^H z>boJr<+I3$f5?>z3iFq3=Ux_kR^bBg7=4tp3Q6v<3LtS^{D#mf+%q313oXL~*h_m= z7rzyN1RD&>%-uq36flU=!PB@)+qZ9b-aJaAK^3DSMkwyxAexHMDALltMH^8uDr1bO z91Q^@Z~+=u?pNqqtZzBz;_iOy<@10DS1=y34#&gOe`srrH00ez>gCgL*`IRO5qdz@ zJH*BzxQWy_K-VDD%-&d^{b7Vbji6B)hf4q@4IVm#M|@Wwh#>S=(gf5IE+2_A5UPj{ z8OXNi(8gBEkQj48h^^df9?HuRn}(Jw#v%#8AbC*f4(-bUD@75afV7;DV2i_}*ty>h ziw*{%e_TcRjJp_D@!$omuG-kQ7=4rwQs13bih@PXOi-CpYpg*il3y~HvEEN1UZC@7K3LPaSSd9J)NKj5fugThWExKFlj0L6}V!%MCk-^(L z+hSY567Ya-AV_HwBa4g>ZG;J>fy-)NxLR6#e;$gmT*sJufQxbwR_IyZuG`wdz{i3y z&SDI)Ao&pCyUUIH22dec;)}2t4Xs#QJ`J8LV+adn<-e@$qA1Y`BE9(W#Y?Iv;Scvz z**9!-_vyEUs5T{wFJjxjoCWui+getnrY6JUL zS4ERK%jmc3V!#Fk0xYhHVdTLs>(T-&;vj|0WeEZ_E#x9#HwCs3n9(TT_Kbj3LU0rg zX}LtI7~6xea>FzY<%I3F!dF9-D%RLae<&FmeRKIA(#T5bDA%4G3&HcCMO?YhS2R0p z>m49n7$FEK4>i2CM*?GZM$~6 ztEYDyUtmQUr;%ER0EN{666lQg1%T8fP@cHHk5@1qa2n3<_D<=Bge$C>vs7~ zLZzd$40yvep`pC5eT#RdjZsNs+#A@7RE2OHCg|#-fzv@k2W%xSNbM^V38}>!nyQ z*VuLz%C|K-6hte{V(l?G_Zt>22LFUFl+x0~I92GL3nP>YMpB*cg5!HDxR5dCd{7OM zA{f+m<5kt5>}Z%gf67iD6EL?LWYG^*S3#=};q0^ECR)?TO;B3BAM0UVxfC2343g6* zZw^3ZN`&wD4po72Y>E*Rr<#RJE-00uC~9c8RflnE%B7}JYDJe7%hWI4X0y655`|S3WQ-Te@N#M7me%4rSqUz=pw67 zvGBTrnuzmV=!zm-ix@L;a9LahH_Co%n+oMX8w}82K)!LRH}VhvKOd$y;{H$PB&av? zq91Hqbi=xU}9PrHNbdD|@A2c8_(9cHh7dhz2oU*E^b-^@Q4OF|2pU7!j>uK=f`v_OTJ&rtq-|ai#?eHJ( z3xEr3f4imavNzSR&NkIsyUdE_ZDog@`|oA8wA;@1z5CHk+b)qYRiFt;5^$BA6A>Iz zdp4m$#)WI?e0xC2C@w6VD#~T31oiB?t>BlvF|YP2E7w)MT;sDM$$jW}w=#t|ReKC9 zhbs?NI?lt&Ui_SalC=MHCAL_RDXnPqH4x|he@K|!kHuiS#(h-(uj{Y{9q=a(_}op) zUMzasT^FB;&^vze_j#gn7L*i&Z`$|OwS8K)o9$S`Umi^j882dpVlKMB+gXguo^ncf zuy^vZaGx|QhM_25BV$9UkkmyLcgKXHVv}+A2QX+z6C0$K!xWM1vxMTGIEpZo1XZwJ zO*&r=3Dy1~f;4K;jzea5wy##}0U0mu@+OBXerw{n2`;d|T(=8!T@$9I&UK#OEmcHC zg;V&Vp?vn`de{4p>VD@lyJ_JYyT7w<*Tt8RQ3@4*Z9fcMF>ag>EFB@J7-4;=xDvTz zb$4kiHdaco(5&mL^{zR^gSj%HVFx&RR-96!O_0?vZd+^yqzxB3ekeJG35EcaziYd$ zI)--(>ppE(WQ$_yezjqZ&fh`W1Xm?4oMeIU3=WYpHwb+kH6KCQ_gva(TlPi zxBk!K)6Ui|ky;`LMslI$g^dwDroW-Ip`l>oCnz0l3Wq2w`o1kI&&+$la^1C15Zt=t z>*>X0U(_Z3DgmHO^Pqah^F1}}m?TmB!W`v)ts$rX(}xYuP$HcZRiS9|yB9zI_~NH$ zKVGRr|dUfS~rw+f* zzaQ9dbN1{G(|gCDp8fLtK9=sMGUoo+eZ&E%fB)+bod_j{sbHD$n`Zg6ABvUDIt%rG zMVy16+!>)tV!DY*65eo_oaO6k+1TBIQZ|tj*l58ia``zrDxV&g362$hx7*szuXA1> z4C|_>>ajy-ScbwP=cn)Tf9m-(sYOtR^V!n=bu7vq6n~dhQSbVy&z@#i`%jLG7L$S* zms{Uey!-gM^(O|#Ah!;g*4GC}rOO3>vQ5!A4+!(S*idO<6bt#lmt9-h<=z!M5Y)~8 z_VW|U8KuG0`bcPd`b`nB0r3hbE8gu=M#DxJ9u!vn?yDF7{21v?n6SZ-L>l%H1_j$@ zuy2Q_OS^Ty^C%YgIdgvuX>h>FcGb`}7B416hzXwPjm3lr%}MaQ`*(KJB89?#T&8Y< zHKkanz?-8&3DPfJ(e&FIhSyyrH>F9)=%`%4MD5*XRvd7+r0$PiFv$L?ZT!e{T@~(M zHx+GhKSERxh!EiVE%_`B<4=o@y1XL1qJLvoc6q2iz#bgFh+8p5&1acs`qa5>F2lEP zp7pR_;FlSl4=e(iEiz=jgUUmHb-g%T;ultz#40Do1Vu5w-lq)i>1rF~4_7V(NV9#8 ziJ4EU4hVyHoP;{X-#6R+2ExxC)z>#=y_=sx9L484P?`AIUfX80+4FW8wzGHtfe^)8 z{|pX-K|QBaIF8zjaX4UWyX?DmW8Dv){xe@acfn=bSA&Irz)!Me9lqgz_*~Nzz;dp% zO9p~qPx~TkTXch$Rw#qrEoAhx7g(4w0%ZM?_bsuW_LBd@|J{f8k||Z;()`UJ{Q>2q z7v&6fVF%l18(Y`aFk*AL#HFs}v&`3ja-|{4M2Owbr%lSN-+4VfY$nL5Z+}HU1^_1m zMX0s%lii{e2^CaxfllUs$)-ULSjlNtFbc40il*E> znWQroRX41CP1i+#@!58?o%>%_;|3X6VzlAGL2ATXT@N=uCRlDr$o#%`<`Nu~&q;mQYa+!oz1ZbA@|(Nc_Qf6#e|UFr*D5`vY) z+Z~guwyxVZ@FZ?p$lV-{uU`C|*%B_QmN$+S8AZ+{O#>p;p;YeMwq0(E9&X$GZI8Aj zoC~O2#Vt_Dg_4GdP_Xhx=M!C^f)$U-mEtr7Bl@yKj-S$(74i$B#oZrCnuml$e}Nis zTQ$z_`QuOSLu0LFmz-A$9~OP}KmYKNHIWA;Y<{%Mv994HUcYS{m(f=W7=Kt83h)QH zcK!ZuvEj zl!mhIWrh5YXr<&tv*3E|&$b-94mQTtc2f*v=Yo;4ecG0XANB#{WO!FCd@1;W-mYLH z*ZtjUKR{A+S#6>1jV;DhglmdV67i#?1S)4CYy67?Q?_Gg2irNL?0@W4J-$VT$$fZD zNc^dQGe*KF4Gjo?>!QignNuhql2`wZcP3GSv(6~?w7Y`b(h zwTtZW#r0Cr&vKLZGk=tUWpK?Bl*HPFqcfJnv~UDL-_w(e5XWN>JBxSx+x;O_aEl6A zz47-a$tle#3#qjHIMze8tu361UD>9BtP5&cJ=#W^rh1`Ka zDfL+fe?P6G6iO%+e9OMGopoOnT4;C+`AjNdj;d40B9D(UVJd1j}R&nDrxXw^C1p7P1aDSWRyvkKr2EKImCA>RaK(B5w|K)2!i~9+zmI&1U=sQW z-kd!=V#{t^J+1aD)0lT$+#}`!sOXz4Uq^8xEi|N4LWp)QjV>YQfCWx5ogvFH*22@`whhTcBLky4TCP!#fP(X`#h zebz;1U3`!5lB|}RB(U%Tz07cOeNae*$*rw=neF)mm#2;P{zg{vQ2zC5-r#z4x8!Pg+4!xMgD zUQ~ht^8G;s+_pl>Nap^$K=dZXh}I$$=lx{cNx7}F{kC%MukCi((!wFe9v?0vB>60} zq#uIoG-CfZfBN7e2V=s7oZ~l3yFnSRCor1LVSfZ&h9Zn-&8liGpn=Jbui7pfogXX< zd{gu;z4tOkv5Q?Y0;A6N8PEU$MgO|O=lK{7UPX@zPR5j!CRly9on1i3%VKnMIg4MV zjps@m8dQlL>y3*dT;PBa4lxuo^l*iEAH#B}$wOO`Kii>dkQ$Ekx6q?UqjM5Gf&RSh zTz`6m6Ae|qI21P<-_po~Q=C2;fPU{)QDSSxbC|{gI|4h+LXR^^wPz$a^{6iHkuwp70 z5dLUu+n@_K4BWtueDKzX8{ze1Une@w-NMth9NVRB&>gtpoI+JE`u;A6n8@(8!vc2r zVZ*MUGOM-Sv|R^Y5*aJSxk_MujFMct=llNGt6h0ylSQ?C*=~1Fva8y@t=u#AWPehn zY`dcVA51UUeqsrX@Z_0mcG<=b>lWP@6Qknp{?^N`E$wo@VR47>^OwKyd-=l8eRigf zs#ZY_p+D}CWcE&If{YB5(-YYHfwHvBgH!G|hIHd2Cq29o4x_+NjCDEbLG>>wgR&Yb(A5P6EH!4(i z`aqbM;F$?!`m<=De`>@`hsO@)A--gPmn?Jsd0KIw+9eysL&b})BPm+A1W2Xuv~ta9 zD9imel41qpn#7Nhp*V)3^zWw2Cf7JXG>x>gp7cE7vf)m~+tEr)UAXZDH)o$w-+ zlFQF>IQml;eMuhF5q=p(O2QO}6>W1#6mRJ;{$D?A|B4Hk6b@GP_iebwjvE($(-sE> z+p;aoYFV|_vfb=TIDd-_Dbbv>qtJKcRebP3M21Sd6FzUAg}+oWRf{Z~XM$4|4&-KA zyDu}qMEemlHki55DGWA%=w`4P^K95{{YS-0h%zQ~`8izZr=FYT#sp_i{xmi#$4P`$HeVv; z;@>2GX=2@{as9us{m{5x8_I(xu~sewEH+h%PH2t@Be}TS9{Rc)S3z7qzx}E0HuvHB zzFEOFME7k!fAEl*oT{K?_s}l7!X;ApXyh`m{S*NUqKu2RL+;F3#p?ne3CZt1e=sp{ z5H4%rq11I-7r(U_JrrDl6Z~!<9Rm&RvIG;V1A*H47UY!h@gO+~q%{%H$c%dob%;h| zQIb&9L|Jr~2fqHI4 z5oYpGnQYm1)z&r^o3;iaMyWU>e=Ox<-QcRf?S=v)3r24#K#Ylp}?GgMaPM?wg;J^35&xkaFg`SbpUKPu(eOuMoFgX*)Pw7#f zi;$q_0u;ZsHM+2i5*?}Q(ozPm$+>^Ux&YZFbSNmh0N3>x6jJM8E&@hTf7UHF1tsU5 z?rOG20m7w(!PDCgL_1jbn~9Euj`f`oiif?^m3yxTe9npJ3rNo&LxO20L(2<}#I|dH zLl--N7D%*d-@U=p2w^O`5fn;Hq~$|sFNgYm4#l!+Ds)e_$XTQ>1y^~nM(9ZlZD+AP z70#dPNF9{3iu)4n3Zr{+e^zmK`7jC+AetX4O!-K*z{rB=Sd$9IgLl&a#nyJkZ*7AR zMx^gHNRQt0Zg1Nq$`~r=v8EPE%AjhWgE17pRZE00h>5fYaD?r^k=YU_w#;PYM1*~&|ph`zPz^gsLHSrPZz zlVBVS9_^}b-y+=Vf1pCd_~vKs&mc7-lp!u{T_A-)j6aGLB@acU3J#5|?54uXgXxPH zoqkkuLa7KjtJ+>;^;Mb@8sj7Hjl%>_Rd3q2c#Xqw87U4*L~z@tX*;AeT<8&HlQuIh zc@M6jVf9i<(nw!$4dF@X1uq7yPKr{^FJa>FG!ywR{og-ae@u;Q8M2vWQ7?+?qQM7> z2<9w3##jq*ND|yIZ@X&1io=-=i7_)ICRdsTD=LGn%63~94LTf9-HH(g&xw>W*d!TT znvT*mIE=MM8EX-hD;Yf010YZ?nG-_j1&o{A+HL;vgA0v}hgGPH->PBV;RK~+tSdMo z7r{$NWnFY=e|b>i{=YbRaA|mmhwXM)Y4BXcm@`7>-54Eu-mj`<@fM}J5`q5<92P-` zz*x1qCbQ()UiCsbX413QKE51xGZ%P(~>K!XVu*nwVRgJg1c z3H6spW%WYpP&sUH9}y)B!E;S7V5I2OX8x^z?{`oFe`3MS+ya^_WmV%-4p6aHkevgg z!8c~JMM@&pB_9`Y2JecMMYpgGP8c*N7vQ}fBYK(VI=uWgbyYC3keBe1JgWE0WpHVI zS>dI@n20gRnq>S~D4B1HE0iSM(;exHLAeT!s9?1TrBtjWG$$bswLL!E*|*qWm{_&2 zs8KZJf1pla`~@G33+S0VuJlVts4=pwU|Slco6;=GsRw8#QYJ$%hRP)wC|QtPT*8j- zX?^4${_j7qJ^~u=B-nvpID;8FghO3~UIL{@oo6AM2lK$Tu6l&ZW$F^Pd>#XWYoS9m z!);sdHoLd(QU4<{7Fw_iNCAImk$1^xa1f%af3BdUh|OLMi#704iU*sA0AexX^ISs6 zOXwaxX1b9H6I|>86fP+l@a?)YA>&+LAj-iAPW}Rnx77xnT>y#;c+yXwk^kzy^T83Y zp(+Xh;dv%*mY_+e^Y(< zs)80ly(gEc?8;quFpPqd2g#XfXhW&fA4Sp!~fR@23$PPDHEYb{>RomDs|fwb+#%tn|50a>s|Iwfm>A; z^*=+#j^xH@mIspm=WVmBhP{sV9g44hdhz2oU*AXZ`TpBxf2!QSq*;A-+j1`tmAMMN zJU`l@=-vOT`fO;kMcdfS{YFoJf3YdLu6=VKvY+0E?5DPQdLG-?=dpd?T%VIj7day$ zppNsSE&8#u8?d4fyyu1cjq9=>+huiC+3r4yH@`C|_z6ivZR6YgYI`+g#j>;B0BiSq zkIdi>+@!f1;YG_W6k!Coy{?vx-Ffqy0B&u4?Y;$O`;&p&HnDOH9^|^sfAJy_s&q_| zh01yFm|}J9z8Mg#8W(e}tqWnQGFw!&&6Z<1pk}G^yP;^DEG1R%H^h8IKWxI>wWl(8K!2b_*VBshT0zQ!W=p{L|F|kHXSz}=*{0ECwaGi5-Uj>Obc(3 zY=^b`W@A@1g)_{yTNTa6f3(Cuf4Ex>$O^^DPlWGg+~(JBin@m95uB;Z6Q@t$5?%K| zwoBW5RBQZjnugq+6N{9l;GufjZJHaqtO@{mKeo@DEQTbC;soX%!WmIbwOU_BmalmV z5lohGP6Q2A*S_Cu#-@cEgVmLFfhdHYjRoEB9-FaIB?RSpV97G7e^RK2rAf%jzO$R6 zSyk<(K!yg&?QjqBZk`?$ntlBE{wn7bKW>X|=(G098B}-Oj{QETLmhgAWMblTh*Rhx z-Vbuox$k~&MddR;UV+_P+P7byi#M6PI17;2kt_Bj+v`Z z%EvuN&ew%zzrU{fwp+SjsJ+@#${d2PUi_RDOWU*+wxNANxG}NY6VHXzT!x~(SNMZG zX1H?M#b?+F{IoWeO9v@bZ+i8*YOhTM?YZO8dK$*2q#l-%#ks&T)6ZZ?dY z*1NoI*SZXEz*f3t&c{g?g5TYehzu2VUo?~_?Z??Rh#3(o9i%)U038*h4CIGph|$Zg z+JF?x=4e(8erkpp#q&TLD=uinP{o4kNJm(ZI}PZ%ACx(h64B3z`bl0ET%bK~R>OL? z8L>e#+_{JZL?8&GIyl?ww~AbUvXs?!d~G)sw$&n{wW8v4)LlO@Ax4P^Ye9g-^bW@3 z5hLRKbA%J08WB+L8YS^Tje&si=^C|ducZ5*y_)fLTHgN?OY_ajACHCef?>gBp^v9&!2 zHPU&-*jv7wFcrQ$`u(!9GrvPERNjDY&&*ae3C_sQpFOewo^iaOC;afO}kwe ztHUGa1CTYGzx3$v^{ps>;~bjxk=F)2vEaejS5^7CwpnTGIx8B8II=g@u+G-i%KeAK zxvJZRbCQ3;2aZ8wEAob;OPo!3;qGVaEX+M+?iYt;t-3;JT@30^dF~ZSbN=v@>?au7 z?_U?$5B65P6Ybl7-Rge9w$BI-2Hj&fI~RZG;Hjk3;ZGOe7cQZ0D~Kics_0;HjeWCd zJ8bAU;W^c@*F(6ZitykZ$4lE)?XqnKn5oXn_Gw#|W7pYc*yn5>XWgzQK`@UQ8AFvD zAyo8xCOkJLEO+^xg|p2Agp&PsZSO>y{nnO4=WK9kud1?tvQ3F?_mv7NqaT5T-Md_< z;8elR*3eYj*r9;BKe`?b=kC$Y35-LZJ)ShMc=n&RSb4HIn8I^e;wrX zIRVm~>G%g0-5=9jicoFqeNJ-WOz)PbwD(_I{Y(s{F`C40gT&+{D4zaxRlv$h@$|&r z*7s%U$k;J|#kfDC6gRw#5fMH{cG47hI;;!#$n{f>hqCy^Bv&-{w1BCcNXA06p4AKY zS^LdpW&})1BacH{aYvQ#<{2K;a{jUChp7vPm6LI4n~HxuiMsSugkCiFHCKD_=Avmg zMZKG5^KGzq8)#;&G+Ukq0#EJYoTQr|qAq;d^Ln$;gX1pvIzDY>otVbm17kB#xi83VeG9Z)g&!W(w@cY>~v^|vFvt_%fCN-md5CJmtU|sE(x^W67 zP>W?%z}L*G=GU>?;r5CoH%74d8i z4V5OIp)MRT_cjR~JszGjLW0N8eSE%cyA}{FZkI4}3K}FNTib0hOg)f8bn)aC%9ElK z(oVmk%z2O4xk8%kTupGlW$bL1ZgL79e+K5~lN25xhO2v|Sx$!3a2gkLtQd_y5Ftcy zO3%fKc+)PHGr#{8c`Ga9E&vI(8E;)rab6HgP7SO#;AO_CCOM10{zPalgV()&X*=j# z0WycnqT5QRjEg+_(2v7~m|TbE1z$NTeuT+xTs-frtAZj_*}=FOwn-TG$Ba*rf5oF0 z7P7zC0lwq@vh5|ngP4#A6Vwpf!@CCA2Xxm3SWeh!Ecnnd!Ap$={l*XpCeS}v)ZUPA zqVnTPP~=@>m=g@A!!U5xd(-N%t&>ouWCGi*ITJ*M;`GVm;cMm-L89L};5j$BAi=#= z@6ABLrmI%#A%jR_nK>&ues@Hye>m4Nr?JzTq!5D@iD#P~2x<7W5UfuT1m^G(MGwg( z^uYy?zjME<5UH+k@^Jw|5>gqt5HdKv^r~33NYO|YzlH*5j!bysxh_+PX-SA)%R0z|#?}3<*tUf4(es-QV_D zog9}m3FQNpli=FgEBCK}rFo1YiweVnrg!m*xWGE z1XrtnhQ40iw)>fs-u`v8{m>nzWN`)yMrfE1iya!&PJ-in-lW`1v~m$0GBiX|*o2CE z_niwRwafkjXr4{)5VpY+f0Zl36WGtqbFP9XBfq<~l8e%-(Of7dVlVZ;rkdhGO`Y!> z7)Hk2xKor+W}Wl+>77n=b=|sH zVJi#?DM<8srVxr77JREts^2%~&HTkqzesc3rN&y=Q@PG*3c4RG7vW3PMOQe-Sgx)6 zxD&Xg%X{IL7PhpPG8Ml72vf|s;5}62d-`(AwYP4*N~92wyC{B2r_^*T~3Ge?cPl5-wO9f8jK^=2Wd3_d&rEB16L% z@tP8mJHm_+nFrJ1A5P5)864Q@Ch?n%3!7AMJMiUnAHeyycI=VAP6V|2qTgY6xh`>E zGW0qf)l{#o5nGnh+8@S=JEPju3eLdpX_dCSu5P8lSZSHqhsE}^LX#~ATJBSh zRdWHfV5dFqf4b7N)GmU9v9_z=_znKzl1nv?8|{xvt1fY)-Jv6l1YVskh2KxuXat|f@*bFPV1sDt&j zwc86|q~aHRb9ph<;akAg{d<=FklSv%u0X=x#r9Zne+gq?R3-t7VnNM_AKEvz%k0|$ zdLzRHI6z|3Sk7T0lq>(){kty<7bMHETNl-!ha9pl9}t$i;pEsJx(=k&3ev~8D;n;> zq9800fb_?4;d5jMXEkDr&PA^L9qqW`z`xE6ltkYf+0zTT!=b{k)RcOPu9 z9k$B5CnsW`x1CNR1_SlyMO{``73$G5kgkHEf9U9)qvl~{ia){e4*ZW8XG+GuP0xuC zGPq6u!_k8FXTgy1p_&;eB1K-IbQ*^58Y)S1wkl z8jE!NFXz(4K4QkHFj53>AAWO~Rfj9rWwE`PgGPzVIfEMw`p4BPF0f<2=NAelj{G*o ze`a%R{bFTzGi~uWZ+N-vf+v^{?0Wa5j#Euo*~#=KW%lfXyZJ|UQsu#6dmw+_4 zb1Eh%F7vX0^2YK4(lVDlN8j{f1h%s7fAfJic)cu2zP^k8VF0rK1xVjf7GGh z(^a{udQdY#Mu-@}p{)|V_tQcLU#}BF#ln4t9-9quPE7*g1(iyLFYMUP3qiWj;k5aM z(AzO7V9zJ^6f4(C20N60u1mYu%!gGvw4nso90K;(JCyEGVvL@5dEK}j#ts`H_b7=x z{^9nCP^hMKYZ&9I=t_i#Ej^?Je=15aH%LQ~!?US+ei1n?RYW8(lmUC*D#Yr!t*hb! zMrR0U6-V#(7zi}w<4WY0IH%-=Vn|Rwzi7(N!d;4XIlAQcGF~sZRu;cs%%usvUf+UCY@fCp z+YA>$i>ef6l^m^mD}T3#U{+vow#&+~yDp#>=ua&T?WQQ#81W?`q(x{jsQ+eLT}}w1 zQkba#QlSFw&lc`HyO()re;fRFdwjOcQ+UPPHw^_IKib}JcwdBJ@dSVH0-w8)~!Q#)xw!abnPramO#&u<-`O}#5}(_6j(Ga{Hr}R&@FKQ zHzT@X3$1DVPnP4wRB+hh*)*&)F~Z0vmn?x;ol+sf=CtdF8#vhte@>bqL&S5g5_qI2 zS9vf<|L%CR7OfQ-##Q_U3+LsudwfITp6&XoA6#($?(QN=Tuc(0lLW$ZxP2Iu`aYf$ ze#iA?Z>nLPRh!KSQ%xW~XqysS*v>T}(W_(l3#s8Z>t)+^_3r7iy1KF*$e0v^g$r|I z*SgQsmR;4@tSq{+e`@yk5>Q$p)Sf7b|6$9GRxFexfA0mHkVhZ;F`C#XG;+-}4|PtS zU9h91oahA3spgEB;LOG|sP3+@TNqrYlnG4M5GI2b_OcqrYACwhlWbdbP>1T;YWd`V zY+3bfx3nEHYE(-@;;(GDKbtHM&KLT%?{^Ih86+R*)7U-WfBxuMC^7rRQ9-zZ#a&u* z9I1Jn8kay*#?PG+++Q*C2GurwRrd$w3ty$Lme@!V$&v^UUCwDjne<+93+8HW zpk-}$;DrnqWiBR6U_YM`_ilx9u3tPLSOo$tc$XjV%C^VnAF1;c@fQ?bOqlcFL4_aS zrYcaH45~)>V}=pq9A64OeyMX7S_66~0IUI-``{BXWUzc9%%Xp%ph6#B&wmFN)@Xtd zVdAe?I7}wzp?Lk-#3j47D?9ideRPP7@JF*EN8}?u6{^0Uv?H&&c5^VLY+(@wdrXn| z*NLe%mtK7e8GqiMyhX?eIWL!jsH4gW3jsPjM2CXJ)2y6I6v!}9B{=Bw#$G+Ag!7=( z{&(+aMdJ+Ym|-*lfw`Q^JU9>i^}dO5QX~4O+oCSu1j+sf{uwf4j#mQfsa)iY=b@79 zA8k{uK)`X)wPT;HtKNO*atA9{PqLq0ym|sG+ip<}{(o!I4#HoF;QYV7{9cQ&}EE~DrGI#WCHi@UzWVe&3~K5)-(4{HOyanUxu zk#*I!Lu&>jGez^d#-?GXHC1|QMds1tlb~D`94QRp>xyy>%Eitc-=gd6tK3j1=*FF( zak$cF=uBeEcH<3hoZ8~qqAr&B24^@38AqR5dsmqUm+k`Ou)9bmk1jIq6mE|#RGJT9 z>)Wd#8>+q^FPGqc3KoC54KiZRQA%TCFKzjt#E>&jT)S+Wp@pT_G8@KC>x(FL`^G{0 zwRnRJnsT;f;*U!_w4mJXIcSrmA%zzG@psOZp&~dPu!pv7>)jR^8zys2j_+3N)kvk8 zJ{RtLLSRZ|TceX2mk`*S=*>tdsl&TMdr02j)z%M$)}#BxxG;aITrtUF9}9rWK9|8- z<4^nG?@6}UKUP;RWQS>T_e^cso99{n65B?5>i_;316=E@x*?VO6<-`|#CZd%we6HCbo- zZPgV+>#T6{o=9;r6TRak!HXLqob9l7$#lQ9Wp!2g26s1jovACkDQcS?RKnVBRiK+9 zKKfJjhllpuE{rHQ!2!q+(WyLAw+s6OW8QGILLR$Qb>V+YXr$zZ+35atoeNl+?9JMG zJ3LTy355IoTQ$YB4|qY*4M`!o5ln;<_eYRjbZxQB+z)_ACR(5>ep3zZQ$GTz`xte* ztqQ2$EYNlDZh$_tx^`heT|oOg`Q8hUcS#EIE}YiHT%aoqjAT*+!)P5qrtyeNK0;GTXfFJVx(pAJuQC{H!b%V>O7RCglLs**VqCxE@|SA zU4mEjLb%3eIei=#iug;+*wTn2H5z;2hw|WQfnWUaXld)ZKLxivh{j^g6UaUYiP_db zBZr?`2lQ$L8)tPc>^O|vBSXbG<3z@;4929?oXe0j!5-EAUVsbgp_m4mmRYqwPLC}w zBb0yn^BpOy+a5 z0@_NpbYSD?G0D!qbp z34dAdulLo}W`T|=BPx0wXP2uPqJs)@2d4W=nC7#`Es%Cs=>u3=$1NN^pUG1UN%SXeKMQ((d#T+ zEe`=uIN4%M}@ z#8=~@932Y_|2Wjj_H*txFJzAzbks{J0NQANrcwU8g7!P23n=Pfds|O%M?6OhxRrQs zTKRk8UfW{%#E-i_@&AA6F6iseJm$lA3$U{Xev>u&M2xkbi$@P<>(K zwJ@KOy!#5xYvj**#Jm3xg-dp>{rtNV->Z2XY`tH%V~tOZ{RDr+ld29sC+ys$>UsQi z+pK&h7V_dn-?wE|z>%3>VL%Am2>D5d7QIi`kG|w|8}W_tKFRvB*p78^X{_Up+$7h* z!{PI;c3s=9cAuhh$ZOlXZ*+gCw7ATB;`+WJ7R2Cn)Zhi|iaZv4SAjhbwrj@CldP#D5nWmz_fc^MfVYV-as)4hOQl+_I}ywq_s7L@4Ui}5>g_60GHJKz?1{&+|2k2Wqq z2Bd83af7xvN}>*_6(f|L3$v=GAM2{YcU4n4LMHkH>-*)fGl1%9dtZMqAH3yPZI|_@ z<&2XF4SO}5_*P_mnaH(DW_7|-K2xoHJms!ht#M;k@`yR|F%JcsTjopwW8?m-Syc$V zE#-d2Gw!2Teuz;9MGB69dfSxi-RW5Vq%v{P%34-eSGKdw;3Cut-2orJ-W2~Rv7)&S zAE-EU#n``xaN!XdGm?KRL+Q~+Mjr4?=+3NL+>36FZ_~n~ySW|y(7N44qC4X~??rc0 z#lZ-W9|1mePUZpuQZx5@_$ffN@udeyjsRm{oA(xYrtTI3IAsV}A3l9#7ysD4V|OM8 zyq_J`m(Qdk;WM$Dd5!uuJJe4f%hQTo&Mb@GPZ0OpcT+=)Ja>P0U)0Rb`O0Yda%Vd(l$3Pm_@&AC!0ffZ5^A!KLT6{j5S+o3Bq zb~#Q5wEC@A-74D-TQI}ipU+etLQrwydS(*uyk^$f6~;Oz5ukb>dEZD8qVjW7?x(PP zqFyXJ+aSHY0WE(&mQt#o)0wHdM~CvTATXoJXn*<;b7pPYGuy|R*r2)4Qm4{epA2ng zZazV4n_tHU0!(aeSWwy($#jC;TOj8a#5_2=t(Mhtw?U`z&jcqtEp9V&fQcKvq=P4@(5VzH{or5lKlpP!<$jNX? z{LMG_%FRp(CTN(aOE^uc6Cmdy6&X=fkYRfQR@}PJG|A5I! zIv%^H^aCaj@|5@|On530%2c$RSxlMeAssPcMkZ4{ff193WpL{mO%(2()W+&$v9DOhBK>Xw+W(;LQ`22*_$DKJVc~s$Wocn1~9kLpV2=pNR?~e+Gx}+6(7OYL!RcmIZU8hRw~@Z&UlVc!Lg_HttVh|YWvL2VjHRT=xFRWK;UhI{Pj`jhP6uy@L}@< zV+lNNVy(UQ%5;-)h@RWo$Oa_rn+f8M#nQpWLFn8}{MvSdU3C6zQax_4o#8Q*=h3GHzWSxa*(`kQTK56kva1?<3t&~-5u4W} zEax(vHW0u&+d#h;-mmu8u|bJXq%tWz;X50(+>6h>b}I`HA&gF=6Dx8Ug-T@}P%6Th ze4G_-i>8D{b7cIaf2Jpwv6AqjXB$BG^6RVB25zys2nO99K`=s^Oc&2(x$Imwq3s9T zuH0Xjw*VI1P?e+erdbJpSr;px6qa>yU6nO9zp5w~CXc=BIl(*^ls*h5oYzGNQs?m} z_a5Y#2L1H9)7cMWiM&qkq4L-}!+QgL z_?vl9hDV%H!t_(@H6Cx04|lHzdPq}9W#Siv_v9XLcUW^q75kj%p4^$b`1{CVP7+BP z_|CO8-h&Tse^yA+$R@-YeUbODLz)JPJbGam5AMtW&3nKh&iiB{Mba~Kzwd!}35gzy zKj4JT_;c4}w`<#$>#p6j3fD}(!CHv{MV#BM4HNeyi|mn zb0s?*9OWWV}rWg-5xId7L^XTJFhm0zA<^>ERfAiiGB{!05a^g1Qw>XFIOyN3= z5Ai`a&o7-xHuvmNe$M>bdbb5+%h6H9mngv8AxmZa*IAp;=Z=B(g9}jH2R^m6RRKSG znEQ1Qa`97QC{^SgC}m8S*Nh4t3#tpSp*maKUC_K$ zmW>J|e{$WrNFQAdQb?v*GD(_e7w)8@wRH z-O$5NY>L`uFuO81yluBC8gzD<3krNC`@=)qte3@C7;4Vh*rZSTI& zf5pLl=yK+T!BvchO4M`UP8HB6*-tNmlrZ3S9GgJ7_6ng6{vIdiF$YJ``Jy_X>u3G-iKkWL z3^DubSS&mDvCwWY9SDj%=CT10WZ}8)1Ho)*ud2q`TievTY_ZGMl?!m{cD4KG*|TQZ zwF~!84JYM2Y#=2AkU#zThackRf9U@IM{|VucG?bo;{0p@|AV0_kH-5?A>#NS|1)G{ z;d)UbWO-fV`>}9i$}iGu6=nBP<)}MBY&5!oCkf+O$Ip)67edHi5w}Uot|*f739P2u~%? zWhdu&KDX}49I!{XhANf>Nlx@*o$d2u0cgC5a&giWxlDs5qmT8oXJ=~B@$}=fDew$- zt!MG!RBoSQg7-<34QFxW5}*e1w%Q6N%)XB&fRoNV-^ArV$ajcl5EI_nT(0 z-6SPeT)BU0a>8ZNmCjPDeb1QXyfg{CEDw%p&cb`o5(_qz z)6z-;D9_I(%t3kIY&9~Z`zh)KkmkWbq6Z;GOVJr-8c!(9Cp?nkpZ2BP%P`6`aB^xM z+Y$Y?XjYEl3N=TOi!?Zf_5J5@gc0fnFGNj5A_ZKk9^1s8H;#)9f9y1Bn*dlML%J2S zz&iK(Zi5BwunA8iIpLH%w$bwK?KMxNAel}EanG~AFH?SCsr4do21b$;q=jS zwm-oX-=!1{M4pCuG9@2dG!RCb<>k!sCGv`rJaoYBVN~tbeaKs>3RYufe@5()-ag{L&ky%;d2M~j=KPNmW(%wzj0uP(vK8kWXPt&3qFTRV8QYuanX38u*t8P#K2 z&_^=-#UB&)OGKA5c#uX_kI6?5O8>Gy5sejLo=D|~nnwpbzrf?@V^^%Q2QJb{V*(AsGtVGwr^ zABk|EiuBv6S=M{SgJHL|Xp!deSJ=HsI1OIoyit{&2%(sk_{d@yt8VxMyw z`5_!m+1crX2hgl{o9#Mld;$amfv~$j`v4nJL`LYMEF7Bw?& z@}Q1uM;05#pvtA&M(f*!rCp?v7ZxMk;fdl2`XI%aRp1lMOoUuZ@b+T z@T0ANu-MDPoY7#1Z9Ynj)%}wcJ8pbJYdtq(i(&}<#K*=>mb38n@%dzNXXSCz2onz| zeQk@bvX`2b3M_xN9eS4-aW}y4Qq8xqv3cFJZ<=h|Rhzh=DW^v<^xnd7-j_4Pq4&Y*6l#)3MZYd_719!NcV;#ZeSfbQ?n})?B zPS<=7HLTBg4?DyIk|%yL?x>%0W0z}|3LbwSU~Rb95N}*$+-rzZ(x4ppebDNwq8wnZ z1ml3viK)dMi?{?Jcr^Y#Y8NwDa$=R~j_pk+%ysB!Olv6tv$vdNiNrrL+V|0xdyqSa=ffQE0Ju3`qhVLrIl=Xxve<01f!x z4Ji7GFiD{ztn~Y*uVy2?2LD@?HQoW%iD}dWtUPBVsKNSd*lnxwSUb9Nzzun6$p~iR zAN0>MC3C|=6~jMHsLG-%tER1%F3j2A!FBY0wZD!Hx&jiRj0%!F%Oi&558Z#OdG*ta zAHVtfK5ozJs_}oE|5UkuNwdO0PEa+AoEIDSJv8^Lx=;TWA2*^C;+C6WG4~8N|A`BoQA(&~a)#g7E-lU&MJ0b^caB?VEct$JRc%p1V@GHY%?BkreqJKA;0o~l)cR_*fgiy7zTM<<4;`wzM0osR@kzfa>N=~M!S+MdU@K{Y$JA-z zqYuLex~~P*EkQ01H9%zBGCCw#5{G4-4)d zAhk{7qL1p@9&YO$3YFM^X@^VX`9s%hE(@5mC~*DftZKI(`}izrx)Bn+;g)~ z@ZW9rc6J#PD@?PT=kZ4$Bv(OydDbJkYFOKPl4-hWz4fort!PvChfqMnJ9=U?S7%^Qv4}pGef~VR}xw$Cgh|Z4yxfuU{iJzlw8{1C= z$GY|dwO2)H{a+M)-TfyhYMOeEC1+oGj`=%1*d2mx{7U7%B{7Lp|T$H0@ zVc{PK#I2v~>)WegpSJry3tL-XS7>RQxJUT}GhCesNPl@c3+eooI@zvvfRDBv`9N*VV#TmI2A!V;92oHaRPiha?@VIn#| z)6=hao9!Bg(tPuy?JHlD!8%dss0l+;Xj&0N&NLY}c3Bkw2)c~>`-1pTNjMi9yC0;K z$aA~14%JxK?V&Av7{aLP3J!KI+9kF)gS%uCz(pTtkX(y1Vd2L1?J2UY?c5jWf0h-x z9S3;Js7%2t%KTh!Vq*vA6pOz4Z7Om(a=Sge(Rs-cTU`UV=>&$HC^P)r2*##u+Olrp zFsT4a&-4S1 zteT>4kGv2HgL+^|ykDHLGZDw>e@GL~$}V+w1%d&wXU*=#QuNG=b%&JC#P*|v=;91R z3{2+6?hmQ+h(SruFtpKqm>%UJ3E&m~QkUaJ#JP6YEna15`yT6oIS0%=U$MvW8Ryg` z%?}0ER}Dsw2+vsT0f&Fa&P)j128Q^w4)CJ!@0Pe1OrBFHy3MO|VFxB~pkroMp{Ty_TKb>pl+_+hj8ElCkfPXBjc{tgdB<7siX4fJ>#2 zdQlP-bv}b@YK&oPTLLg0fAh=dUUTiMzP2q4fOpk$WwXs#wmn8{DQroCot>HHxP@)A z1^a@({7W%dYy&usm`Y&&f5sQ3<}_4*n2$Q(KM}GbDOgu-X4f|wXHr$$WktWWr9VYr zx7Dg{hXLL0BH*LZ$BYi1QeZ|thZkHXc(a)~lbQPG$7r>Adje?EY+p09NDRje!n zeYUw(tQHn`F%FmlER#Y_#HHACi}_po_9A>?3Y#rH7MYu};XI}Tq(};{mNT)rU6>Av zSpJ~0-4wOW7NA&(Z4?f`MXwsQ4>#t{R~^CO#>V1*(g@>pc9|c&ZU~{8L$5l4x(GS9 zOm>^v?pVeuv#Ykof7VbVT7w)!0??Q`w*~zUw88qz0%%PQsO9k&LVO8wZp?qAhSbdR z`0I|-NaNgw8tPkc5Q2#KEsP4PIn&^GM`=}e<@7BZC~R5q8`+Y04Kh?db87pEfr z+!C(+gRzwJ?uq{6l>C?6%TOkw8cVvEB4Dj-JPHmea^py+JOnOO8S zVPEl}GkI0+*+RL=t~F0#odRO|nX%$xFLg9@1v*|}S|s`)BcnOdbJy9?ww^)vErHgv zmUG{%x^0))f3@vn)S|!(&NizXT6pz6z|2?z;2>#!gqdM3QJDl3k9P(!2KPvCa1ab3HI+b=54EY8gK&4Kxo?0niquJr#pQFGns>Oh zEyg6xBv7w{*ne*Q;|{gX79BQSTFBV)6rvLMxXqkGe|;C+8ee@FsHGtB2h`>^Uf!i< z3yjog3L%N3_Q;TAU12-!4A58-@rd9v$A;g9=Dxt_#Wg#-La25HCKrAE7;YRG`ADm) z+c&n$YP&*)jzddLCJ~*uKcpYTuG%b+!2`RKiKGN`+idT!Yb?HEm!p=#MHooGA4v`6 z?Q?%|e<_Ks06ljq>pZuvYAm|TFhI_vP+oQx_sB-v*8Nm9Sh!@dMObO3kc-D3V8TQ9 zNPzvi9czRW3yvH~A|a>wBOkkAU9Hv#vC$-|Uo?ND!42!SE6^z(IBqO~i~wG`M@}vb zEymZ4r;vgZ!5yP+U;pwC_Qe>{h6biaI;;cLk;W4sn*?8D^V5KbTqb_!2%9!@Wqb~}`oVS$ zy80H;+OQPb-cTQTpiAuGD13=9zlN!x=wnBiRGu4u?15ojK2#$5ygDO>@!6xUdtNAS ze~N>Bk?2$EEK^+OvmIiC&Z- zl7fYCYSe5C>z2;6(B@v0a~l2JRmPN2f3v5Hy8_<{T?#||DMT8A&m9>6Oi(k#RxpGo z%f#P8aZi>Jb1S^S>Pgm*+s?gO&Cqrgx&wruStb)WVF%GXoz1N+mM$z@6&ptl88GmP zB>JZdc*(gpejKl+T({e?-n0#J?NmpP#$QAP@$b2}StoiJ%e_oTUr5ZTBvd@ef6m4} zbHCqNJvP`D&!{3?vFMpi)x^0a`U5klDB7#xP*!Xg_;RwGvG{8qzD_l_toSaxeZdMR zJf1@H*;(G)637X>u3D{;o1Tb2ck?;G+@{$bdYfvwtSwf2GKD6Z!$%*B54G!5(a(WQ z3EkYFWh~*dZ^p9i(FsC2Tqgc{e+k^%ntQ6%eekkCxT6b=8AakZEy4{~Gv74_YQUFl zGXkO$@kb!J;d1UxnX=ec1I}(ITtiDD$)1^~mF{=BDo~FGL%TD6>tagJ3^5$CswoiH zAN^rZ6@5J<%P7}#&#^ja?NBZKoG>z6U}8Lh91N;gv%|t}>pnZqAz`>Be-r-`=2EVi z)vDutW3O=4_85_+pee`Tw&Gl5thN6;iP#WUMMc6MRw8l#tl zf=A@6GNxocR}$5;0(0BAf1hhs7{{zc0)=01UURdt1F~!IlvP}+<>{|>V{D_a+cAl!!$ zB8?)Wnrm)rYZ0pWiTEq`Q-^GB^s%=6ki97|Zbu6peO)o*Od38ne-T@^T|515Ap>O+ z*aZaNH#ZC0-+#y14wDJYbNC9?%21gHg|vncp((HmpuOZZl)BS&#A_E5m1T*0zg6MPXIVfFmbrc z`U>5kD2$NjDO4-KfB(&m0o%={>ie;q6y7kNO_ehGxs55wn(YcVo3_aoRc*87SR!mB zOBH|pf+>e=c2L;-IyU7{U1O`g11ueXVGwqQ$lStU+cXwfS+6S4w^u_pfQz(;<9|bo zbG1mz_(yQS?ueWnjdYDgXmTonZ56-zFgpn8+@~KwN%3ave-{}xzx|NF1cyHuF}F+U zVtwdL;zedy{3qLeD`oB?bJ-P5wVx)%#tS?nNg+KWIeiE&n6&A3jjt-=4ER+7dVMa2 zBxLUHN>`O_wZ!ZhwTfR$Y%;aE%*I6puNi8oJ`fX&Ji?!9A#?rXxIj4=pm+*NH5YRa zRh467tE;x#NuYL#I+bbPxoziNKU5{wm?MExReqgsW?6VSeHQn*u{O(;jJ~Hinb%xm zRk2-n#R^*~5m2clMx`X5S)p3CUGF}7KXz9|X%Uy@r3xZ{w&;*S^2gvv3Z9U%xdlX9 z4(-+jg|~K@_YE>+_`t?epa=Q#%p%8u-bJvZ@#oM!2AOMl&9e2nZYUo!7X8S_WN0&2 zRy-_N;zKxFs(JjGGl8DiT&D=Ex~j3+s&>ES2!V+t66c)Foa+E!8#{D3J)w*~0h?gW z91^fD-az|*YN_Z8zFDT2nyXplSS_pNZi8{tNbC4}%-*hM7B(EKRoxB)N>(O;-ZDgk zGiOR2tD$Slb#03dcY_%uz#>n&K;T#AbFB=o&W$0_JH(6_ZRYCS98oxAv#VDIPojgy#kcw)%{}+3YWvU_0r8V}0 zbBtBdWW$K@@RZ?cM2>oHspBo$G9nyZiM`|ti(_*YrR>|mc8!-mrwSGXSlev@mszI@ zK!0aU^qu7?dY}17xnHJkw`j91lE8&aC?U>1iF2D*?*$-67uCaTKwYhhjcw4yhC~}e z;~ypUQN5VibDn;g>$dc|*&V)-4w9#!a0#ArX6G6AX&jQrFLRmEoang=&U;)d_cO3F z+jgr0-@*|L6vbamgy3;zh00NDJLD_QB!7=z`Eq*8=EjhAGh$ne08A+;U%Dr3?q!^- zYBARMw5I$S`^cvRCUcq_Xw*f6?>q;|>6)w7?fU=(Zj-1RbM0GH)hEtN63eHR#$A9Yc zx%b+xy0#ho(Fb&06tFIqKnw_OaBdT2PpfV*7Uf9-_bVx9)XZ&9?rGs12qh$iivnO= zb8(H$a_r%+_EXphk;(X9FBeZqIkzr2A@iLsWVBqODZMbbsj36$s_@2#NpZ=v2?0S$1E!Ph4HQPrn(U z5IxQbL_*ULjml>~V@M?e2u(pS3OwS>()_Bkh0DLPa_p{)VSkSgZ3az~P=6$HQT|*r z1A5uD?R#5eG`9E^zx-=vW_BxA=(GR;QUbzJ{<_r67;#-}3UoJQ;ii;Gp&kX+G_%C9 z#weOcXaagsxlvTiY$*dJ-=D^?#Bn)fS%}8TVqVBb@ZMy3DmqV)x8h`An!dTenBKj=PXb(eI&;Ovv%7%9Mt?-4 zaPbYm%`SO4a9dknV;@Ek3EY44;OGOu4eQngl<3jLe@tvjz~}baZlOaPo+NQy%o*I= zEUqutD7!c!fdgZ{AUW5(`eD79Mpr>&4BbqmL*^V}0#OJdb5BM5TD(CBDgMRVsf;x< z#{bp+I^sKP51`_o3IU=EHD*>qP5}PaHWuv! z0-)pZ*ZPSOeC`b0>uTB99YRhb`dI@;6ytMyX|EfL&YFBd*dLL|IeBn=_>*09MgO|U zez0$=a{7lZg4>ik&x{o7Vo?>@rufxm&)E1mE0gh;^nD~Uv%0vaRW&$iC4X@3IX7I$ znQvEJlwGyKc~=4!2|?^R@~k-{jLUrHu;Y;zh|wZkUy>&JlKr$_G5hW6R`xgzg3ZDl zFlS#0fY3 zh*8a3vFHoO6Sdh{z=4|Mb$_*=?7>`*R6P3DXO>Z>*h2s!T)9>viNb$A|DA(3&AoDO zs~VW09t+7qGBxs&BuJ*Z*Wh9F%CWK4Rg3O$Dx}~lfop+;P%&4L;=t@87DlPyu$Y~I z%cM*^(CD^pH|#s5*pGoL8GXxbLO44*nGn7y>KgvODSEsrF)IEV=6}@cp1G{?F1)rw z%r1d|#piXi%VW3Mja}71)QR?5q%!eGFTTDxbELJlS3_2}Z*1p}Q{xr;bcUBiL6gqy z`~bMo{hH{(krbXg2X5xrNewrfF6Hc&X3@LLj4(m-xyfF&MF>g6pA8Tp&FqnrYWu`R zkx)k|uB%~}!66!)AzCF>ge7q+4IJd$e4x6<7&&SgJti1)rTN@SGhhPK`l{_<-?xIe zALGievoS$c?9n3=l1Q!R=51}W@-trVhLY80fearLgu-c|oDf4I4@Ll@VYA=4Q;1!) zm$0r1I)7mP3$$K0c3BlLkcn=!5$;KuBx=siVa_d}cz7r;D(e*P+(5cIw_M^;RZZjm z^RHvE?A)jF{Z+duYMU+KEaHFybp8=}Tz`^EEA>H^*Mi{8MLl*j2@9Nkv}nS( zZTm||4osd(sPdqQb68iMzrAh!9M}q@0F+_zckTSkH@6NpZWcwCUE6K|83Sa%z}BFN z5PPWUr!MDKQEn51jV$*=2+uzl9)DWyOpVI96VGE)4A@4~!NTB9M-mn`Hx|K{w1GLv z=zo_RGX`qIa|@Ek6)S|SR0_r8eExpi%{rXV&59BuG@Z!E!`80N1jtHlNcaz&)dvK&8DcD zV{;T4FEFq81r}U>ol7+{W%Ej}S?_+wu3^L+r_v$KMf61xFfu*&;w9#uC(UK_33le< zE2(DYY97|g{rGS=mWYs|ePsvK){vv7co#$V>h4O4TE zp!>l^lRxL z5q6f~pl|eMWt=OV{ciPbXUhTIv*lsY_!H-xF*bKY0$>emTSHVoz~vJ!8ECS#o%>4N z65nBZ=Ny@)@wdgC`Hw2j4xP>UqYkP!A^W?0)1-_{b;3(~+x=k8R5@xf?g z20sqVgGIB)nK@v{9V{Hci98dZs$R3Lb0{3GZBb)`r8TH4#y>d+Lyr%DH58XjvI-x6 zJ_wmD@M-FLRsST?@wq+hiPhz(_at#G*!>xOn5|ua{Dc=di#;*-=;k&Bs^$WwjA{IG zFBxGjH?#4njUO_I#@kB3b{_kr57s~S5Q8bbd_6OhI7{&DU^ zwEwv-FVcm8GwgbIDj7Q&dnTS0& z*ms|!!5DmqM1sW!n;2$QIVMx63Oh5KI}5UFaZa5At0WZV80T~KlXmUK4joQbDV%9C zO3xkiXo{-N+^<=5#ei-whv!s(vNV+B*xZYDO@Vhl7&faTuO?=k(|oSx#KfvBuB%~( zkQRyGvIudsW=8U-wEUQ<`vDkO>~;;dJd6rKL;|{UKI)h`O|{1dW5U=L&%oFc*mZHn zCd|wjaiZ0~wzVD5HO8pm95%^f59$fYXIG{sVAr-Es>O(I^bLq<8GmJe3Qh>lod&*n zzE;+KhpW16u~mR!Ya&lTFoZEh^y9F-DQaxHo0NgPVf^(ezi2x#XgnRfR1~gli%y{u`a3!#?}k5>RW$ zKI?b=U=h}Txk{k^3t97jTwc|7yC2=QsE<@|9e;H1hfHTS#BRXh#%5BeQspj*nTf6K zvE|Oj??*&Wi3l!dzhaKklM}57Uk)zH()N9OP-;h~zDX6~Dgo7RZ*DV-!tG)hyJBcN z+yc@fje{ea%=D6NSyo$rehFuz6O^kG2uAqaYW@u`5Nkomi=_~M^*gsX^L;zvh1xCh z_?u?lEzW(-%CT-YEj(wwI)ac`0%c)OY_6fzS4BBM%!n13j6Y!Xa_uu$lRzT^ss1-h zBIcMacGPZ%szhs6Duvl9Ny*G&{t2vUwCbd|kBpv+I*f|{x+-TbiJsewX*;ZQjGP$B zedAO)U86EvY=4?yQxu?yJ(6EgJgMpd& zWd?Gi^xUQO_PXe*qRHxNRX|vej2O{|fHXwpjhBoVqh_aHAUBJQlks{~u}2uw)WFQ# zYg^RCfH3WXgJ$vP$d1!YbMl-(R~Ba*1x}j9-}Z92W^l0CpNdf^r9a~;wo5`sL$;;<^_fOm|2Lcq_u(fP38NH}&QQ}G{n z&j{lze}H!!*1N8)mRRpurEr|sM9z+L!BCi-v)-_Xf;D`$Z)Q1+QggVT< z#oy<2Ha0&o+e54E*dde^Q#ys(Fx6zfQ)~ys0lrD0)X2o#69orcsN+N!TZ}xBo?fz< z$^+YCuyu{l8ETTq>owQ9EUX^6PhY&P95C$Vd`(lx#~i-7`54?rDv@SmnnnMTWtkGQ z)v8W^VD(S3z9_qK<2PN(wk&tphJ`^DP9z|33eVcys|9<4nA0=O6Dfhr&8d-IkJBRh z+DArnqUWCU-nt*ch)Jf9JiBacwmEfGvFt2V?uV-HM~rcYN~GH|HyHzFjh9kKr;iD^ zbP63!mwC=DC^}qd?^tOQe?;iDAn1Hpjoq$)9WtE$5XQM-=`Z@2Q08QI``JO;t}T>3 zFls}%KY%bD9KBP_bIN9KDZPUXer#=vyP8P?WHTV$p0cDgs=<4%YbmN)Wq*5vrH*X=2onbiXp(QlGyiu zbFS!Yi)!%+P&1)ni!J`*hI^=g=k{ORUsi*~E|+Ce7&M3XYHo?6?T50fO3)KTIoWF9 zxJ>*W(VN=b)jUl^)0}c#yJzA9*l2emsQaZRfDeI0@&g&EJ6i@kh#_S zBeuasBwmWdWp40a$k_RVckyfYPtV-kVE+gYe54<$D|)my@L0~`uRc0|d?KG)A-RJO z@dZPc$A4xB;uXRl5M$n^H+EG6^{z!-Eb$FT0>UJ&)i?v3o85J`aL~#TUOmhS9?R2s z`Pl3!kSgsK=6N$uzb6p}ZJKTBd-7kSMK$J;T zgZ121&k36C{Wm}hO+`N#=dUM=nPWTv4J9WXeNiLhaA0y~8EWE`O>?O3e@m3`pUAMm z-V12IL>}B{(1BO8U$VxZ*h`3u@n>6Ezpc7rXuDn3@A|=F^Ndso0urB* z2l&o4GNWeJd+$Q?ZnA0yxXIggMOl?u+pP+0$r_c0>m-(OUAFcJ3v~R@Emt_FN#j4+ zl`#beqvs+UT%LxIQxX@uf0&pngyp3qN?YO;17S3cD_tU=U2=5DHZ4qd6rIIrWAR_= z0$^rtlMJ_9i*fEE{&n}sDbB8c4BhFhKI$PV8vp61sp2>{Sgf#VkO8Fl4?j(ntGN}B zYSBYN_Epz8xS z9`^3{>iR}g388!vf60xeNksq7Db8FK?A<4~jm2FZfu}6;#2Yr_shH~$%VN83r{69_ zq`Wp@0y2(1yPg>?0;;h_Sl?$n{$6LMl$fh}wFl(~4C=O7WsA1Keip&m8;gJHaq6qh z##mc~B6Ez1=>4KIH$MA%Oz(0rl;f#zAT5Eur^x39h;~twJ+>Wtq~f*=JYf8#MHg|* z^?-gp-z)C4J+=l6@G{Z2I{lENp4mm~*KIfWXajYyVL$;R`ZUau(`2sh_YIdNz6v0J zvaKp6?Q%fg5zVs`ie(gayqTvx*m87->4vMtDez|pSi zx(I+7aj)83<+1*Ch0x5>Q2(Z4t~e@Cg8wcS%XVWC0)s+u{CTuX%jV|M2Vl)>bYpRV zD~Y}s6Z)a{h3*0qz)B#P&y8fWL&O7rEKtluXI(^_98Rf5-ffw@;X{eN1wn6Qz`(*( z^hK&E+?ZRW+VffzCARbKKuf1!U5?fRLU>QBvqg_>3I}*4a>I;0FxXg(!_Z25(aatIJ|NuLMTgSn;y+V70h`;vya86D8?gso@t-Ts2zbc{8rW5V@aPT`Nu0mU z$wObXEBDDUPT#=vZxR9HL#?ZSZ4qY9lBAG1JD2~!%=xPAEXvNMq)Ak!=5HOH09)Gv zVYne#3WEXe0efIAan-dLt5cGvP^otw@qv~4HOk!;DdLX~iKaw9usj8>&~IWk7F|1x z8bx4vHgcz!5u=THsFhV)WVFD@WC|52=Mo=Suz%fHgbA}$DU>$|oqNlF`#`HkX<84DLWj9&b!Z*aPDYgyA93BJq1gA8@K$au+a=lNW>BEQ(cC$sf$S31h z=a^#q2hIlou(m@itF2TD;9Su7z}IY8SF1HbTsr>Fn9s@{_>>JTHm?Ys=6xCjnxA(694PvtRt1xcPf}mUMfd^+?&+oL1b?pbIu8Oj9-@=QNBID-eNRv

d$MIb>nLt(znhKAD=DxsK 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%0D7A89dRf7HP?#ZatkJw#$PfJP?y+gQ= zG^oyUn%3z!9n6ZfUf`;;XIfE=KMLV5IFJLBN*f)&@$vu#0k@Bzpynf#Vt={=ZoJe|Yw#TG zn`@2*UVFv4vh)F0d47F?G8$Y9vZWDMveoKC?5<(E7^4FwO;DdW+&fd0YEeaG`Ws}uLFXBh@Q#D!bnq2+h&0*7JV43hK3oz0gT zP0=OgnNZf6;ACtQ;Gf*N8Gsl=!LICA<)9i*ifo!~WPF>eG8>HY6q_JAbxC|-`Ph{x zp{Yx*lo1*{ov|*50l0jYKChkoh_W^&_qQ0hEggii@)O4YCvVdJmMa`=Ns>{^C`ko zCFe$(&a?*1@o}i{<_3Iqelfzyk69h6`P%d)|MUOJ-8=7H&HI2}ZQ(Kre`As1$?5^UW3`FO}0#=4CRevx~)h zfQy=>whJ~&VM(!ao5r5jf;E!97d69eVdsYpx<)W?o zDHk-4E%$^*lNk!$0NbWnR>RgpHiIIotHw{NUDW9?OBiOcRJtQ#$(ST?vq@3pbKhpo zG6)&8q$4sYtpWR7kJhM2WpJfTW0yha1W0h5`xEcRd^gG)_flJWbv_s^Je+6k2d}xW zsKwHlj(>=yph7_!^`siNv%gug6j1N3ZU&CmSmG2)X;oK*QV4L<(m@^$cGar7qFNgH9;H=wpR%gk_z`$w3Is#6( zhyomR1QKtXLbyt`Jx=oRcvei{M zb^mpGmVC^b;}`3FiQ$gq`|l(v4jWLw+at(W@4?5uIGcX0n`uI-~dz56~&Bfz@Ti*i^^M$=JR zj1dkf(01ewS>NZE*hlG{6G+{irX^xJoO9#U-LW@a@T}E!)wD}|IS_eKdCSbJcRNg^C!@g zW|X>bKkw*Gr?qoIu~iJXyd=Y{9?!R>BO@rBSHpr?mfj$%M9S(D`DxeH0~O@DG?1-$31N7FT8-NF}$SZ?r5V($ldi+_#_u9X7A#gnQov((R9XU%k!HRx`%a?J(9clhVN z2?^@gxkH}HXL2-H0CO*;a=?llp-c&;DaCg;;og}sYJ>piHUZsNxi9^fv(lNdON7WY z;|$-Px_c%j6w}<9t0SarlD9(E9^S&1$aX@egbGZ|dhet6K6>v18KK_$2!D`S?|p@VVV}C%hosaAUv;)@w}<`>MR$J^rPn^Tekb zJf&8PJran6>5f$9sAx~)!qD*3nH z(qo&D-e>7>7n$~B2xv%udIIt_KfHYP_Q%&RKqL0RG>GKM+aHgF@$S#wmlom*TYoJ( z`kLXZljoG2yxj$}{jdvQhhKI>K<`WTzGUx9_P!)0ecJnym}vCAWbaF2&}F?ZiP)F? zmG>p23sR!%r~NV>j^$ubcqqt8UgGm`v{m@_fPa~M3v}}IK>VJm^;|ETu1sfT* zz&v(th99AtX8v*+HcnCtBRb%=3r4sAZ{`BP+_%MyjJFAm=+A{XWXzC*l%Gd7&6;Um zx}N|eGU1-S`0Z69C^uH`bqUwVF4JbvUKmFRj5CdIYr?(r;+j$-DI{Xgv+-3{_-jgw zJ|OoxruCvDubO#|t$!assGd}V!K|*`hudU+2)!nn3GG`=kX^6)0{xb44g^XnzW9_5 zvifX=7rQ_C?#;VXNtLwpSfTX)GI{Z7nw3o+Qscj~e^LnrRc2n*?UvpET7(28!k^rW zKikM8SD+?6T_48^1sLssYV7-8LuUsKEM8~V4C-n+8wW(sc7Gx5Pn7pMZ=`oQD=yP( zIuj{5YZ&j0%4AUQPYbSK5Con9=m24BCGm7Iw#u%Rxn0ez4kv(g_^ z$$y^>lXNngj+g4?3grR6m(b=4DFM%y`sNC^1DDk=m$c^!&>{Sgj`QLw8LbB?a3_@% z<(nFC+hM;Ov@btAv3aTdU;O8nrRWOU7KavH>wh3LW?Wk5?FJWtZRR@u`v3ZumFWsg z0{^9#;^_)(0jHNw>IyIc%a?%a3SNJo`48`w80-&Hp~KssQH&gy3;O-KLjczT(E7A& zlAfPugQ;ICTKPo07q|x7!VSL=MRZ|@VSl4LbawrX?qKOLW5DuPSzS1B^Se_v{FGqm z`Q5M4%U*wBJydYa${hX;bte((>UFZ)17$ZvJ-Kr!1%o0NY7@;ZLZO7GC; zzjwm6Gb{rn4;x2e{BrK--ABQwP+)Wo@76(vsokN|g(mR%{!(!5qO(?$Q5!^WZ$iQ^ zXi{mTJJ5jKUe*DVASbB#2&H^mYy2(;Ra6S7aP}T48E&mm;WZL$X7vBy|9aOxRzCzp zp&rPW*|@qWsR6PS`~OgBuB+og7x5 zs(N;o573J_uWDd!Gz(IgB#O| zv)MGOt0MU>d6s_-ipqmao2tx`=k--`TK(eV%2(wmEzsSXeD~(vsi4NF?M~Voa3(K4 zO|!De4>()szf$spe*_*{+PE?<9OGcO=5C5Dx_MXo941DH#o6P-fHcXyZO@`D2Y9Tehw*(zVY>IIq)P8A0@2OBFtc+T`=2{W#*j#hM z?u)cqkZ+eLV#7rCM*@MED|T-QScITjbEUy^Cu>k)7$~KWb_@do#g#wg1unNf{?F+qg>irS;Og+z-9Z52$*eFMiSABN~}3Ti3qMm5$eOAc>9 z+Jz8%5__&QEpev169|(;8_pOQGTe+1v*9zGlH-d;K|*W|pM{;x9T0=CfKuD-AO9w^=h;|CETxwIz3Zbm=c3RzgrlG+Y{5vkJiNXfs}vN^Uw* zsde0>ivd7z?j6nx_k!~_-TY$W{yQ1fc^H2wls4ro2-mh7?ua0k38ul^~ zn1NZC6~7?z(Jbb|&myl0ZSI69Ar-Bb)A5<;fH?WOs;?sN;}k&Z#J3Wedt2IpkrSs} z2nsbZ{NTcCXgWEFP)!Jaiv@x~8m@nKv4i1|;o5}|zrXJnJFt!{cJTXEs0O37{QxnW zxW#%Esa01RiHxFJ?N_8hs7{|C(H)r>S?ErvyzoJ!iQ5i`1h1BK?ucaF7{+SzB#eJTMYyp1 zNS`VZBIXT7ZK{M(D1HlWDVP!>`s^bE?*_eUDnBFF_5=kYRk8!9K)bbpDgddPv+BTd zFsO8Pz1JrU!J;;5bHxlH7WOQz!3sdMD6>}SsPp^Yx!??H<9Xw!x&zs`?K}%@qn@*A z_s=NE3Ebd>KNDrG&|T?}6NZ0k1D%F)e9Fc5L~(RRS!m?7)WFzA<%+)2~5-o9FJqoywcw z0x)ns9ej(GJ^``v`>%;MP-yM%Sr7AeYk7FP2)UBx_!U|~ikolEVU!(%5Pu@l_vq-3 zEHC#H*NPY@X>ub##3p}_3F7`=H(X4?jOGHoF1&#dz2>Bxa7v<1Pzs_fJe|7%Dg^zg zxb4blE@fO<@S+aH47Ez+!qRR~n|FnP$D_~kX;p-hot!VQi&-ZwNI^{o8>9jW*PJ1a z7?mJYGNm9tV~`JufR+tvYf026Gd(KB!Ty5tVpir&RRn^{$&`PM`)DR5!e|90h|j%E z8U%X*j0vSXa*{##9jsPEUgA!O`2BpL2_wgMdIw3+n{O+@r4u(3MCv`Zxk#zW@pBbH zBJ`bF!acD!BHY;Qk6x4d?o}GISLsi-G0ksQok87WuvRG2jZPrnn7}kxal08HV$CV2 z)wCOP@e9p)6vBT1Vh8t7isRSG2gEH&v~|*VGq>3|+brf>=3e;1Fo4twzq27?iavOd z+TMjCeuL;@32HlX5tD1_epCVFG_M2QAQ+ZVE^eGsd3?PtNTPyEf36RjGTliOJw)m~ zx41Lb+~4Q3M`6RSN}aJ_q$5qwlqoI1>F%2WB91MXP?CRlWa-vCxByoaZZbr#E`28E z_@?!MK>0x|Um3drR2Z%5L=xGJj%Sa}GO+z?2R6it(ScJ;cOy(#C`PDvb`x9>i5BI4 zkcd^IAdGPh%hQ%h@)jKBy3DEE5Vt$YuNl*lxlKS*HszFx-_aSQE_L* zTyRQ^fChhzL+gYP)H2--XMf(#2S?nW7tZmzknP&EsBd%6If0{BFejuwV|xuH_6yHM z3-G+`2B`o{*8IXVal|^(6UM2K2HfiZnZNN}lDk(C)`A*g#PRM&pd6XB7Ci2?mtz2l zWbI;_E)9fOs3dm)MC6{z@m(qbk@M*-X}|%Iz2tuav4}3nVU~3xIPm2-Cc#k{5`!>_}10#n@U% z4Ha`BW|$SE(;2oS3Q}q`HB_XT~?Ro3u~3uyo`UQxbDc=w|2uF7f`=y)P#+nyYB>H;eJ?Y36!G@ zd6}p%T1LH2TX3eh0aGd=uMcf^-gP5PZ+G5N1r59%KoD_I;g{Y~){Pul>#Z7fqZs1X zn37v|eEc2~D$b15H(RWFd0;MPz zWuR;N8M$j3b!#(z7}BYgQ?nfzB_di#E+J3nD6k=TKa`rT9FSDnXn23+@a?D~_K1Ym ziXA_V6eL$hsWcWmmA#K^5L%ZRMPz4uA_q}Ip6x!2_;oBLF2X#1-BpkfU4&@~e3tMa zh=^6H7e(F;joR+JRp15mXYLy~e)%v&Z7Qgx9ZA-4NjaC`8l_zbg9tCRCAuR!=-P=; z#z2F3GeX3g)Mv2B@kM{DAR+p5l>S`y5fB5Iw(;A(jvvYh2wNK~GO*M18n&&`Y|M_R z3ks#=-KaP^{0cQJgMx|k#RFsaikg!F_`jPZ`7*!qPGu@mkWGDJ?eU&s)w``RyL z2wU>{g$xlubYU{(;B@hitEQ+|;phlKtbh;P?&TOjscPPVV=V2+ z`2xZHWp@ze-phaPVThzK;`o9`pd6XBaJTASjsZA1nrqsPM)JjxcgV>(03zO2ocYQ3 z$d~9lHOh}B7l=g^hA_*5%(8B7$N9tm=H0gAB$QJ3K0pbcje&Ax{4~2i$$M2^xTiJG z%ISkkoMSLbu|7&*?nS_5yO~8h>r)TapHBC~TC&jG1 zK*maQ;a5a&*CtM?a+oiZ30urQynXlP#q%50-4D(Pz znq-(aS?az4PEypj+EYTd9sS5qacTsCJp9)VO5(m$Q@OV&MVRPvfeBZHY-hRRBII-( zmjp6Nr)7UO8#@PZnm5SMFd`Y(glzi=nAvQYs6YJGe{wey#g$YpK7k6ePX~FK*2y3% zie!-1?oZV?^=fdO=4Eo`T>8OihK;C^l6=RXoN)2&wzIJx>Z_CI@AyuK!+kJW|NCQ! ze)hrp$RBXnlrRkdGxxe`#NsG5U5Mj$l{F%96jCc=3>2iD*7-QCubk%mlns++ zb~b;#nq+`xMMzH*?c8N_UgwvPO&1wZD2CgiOdlt2-+g%Ou~nB@UAR}^evqWde5MX5 zOykVOLKKhX8I&kG%V?EmkfPmV8JC`D;=Ix#JD)n0`pZJGBIC&YoH0iitlz&%6_OCf zj}pp3ku8IbR?B)xTyex{AYI(Fkji7@$Dn_tvZbjlIF{RrUS1W|leD3N;j7un979eRnRtRoUhjR9u?Kg=ds zeVz~Uv~ZGGXQ|Ig0ZDW0DVLCgy0diy zyZT&rZ^W)XxzGYacT(qPb?#RjLgo*>|H4QoB8;~EhJo8i-Z(umPK)9y$;(UUcV2#8 zF@Bs}%ZX#oqB5yFl0{`w3FwB!k@2FF$W~affm{cQ+moFUf%GPE#}bk^OPPNI+Bc9J zMPWK&6z4IahCI=eweC#IHk_a4gMh3eVV$swZQ|SNV>%mKtvagevfb)DAL9%lI3(J1 zA~^K=RD+v=k0>uWK*>c;o}YiU3=dRXs&onMTm zo4EjFB-`$PMTm&JF6Bpxr8dwc`2ONXIL_+2$`QS@N+pFz?wsSe)_i{xfTbk56JF{( zxoW_Mja?{z&gyjPw9D`Fg=u_@zFY^&0$Gshngu{Q4aM1;ht#-9wa&AvU0BRR!-3<`Ci^GKG(A4qn*u(c-wSU{r z9&h@ufk~(Cgzw`SD=neEt2c`Z^0jj0hS!5NTPJmg8m;&NjR7lI^Cdc~)GS;n z*lQw8iZ0YdxYAS;3OYZFk$`>mEdQr@E*2p}O0=IDHN9MToZ`d z`B|?BjN18G>?8y8I|~VH*WCs&i{pi@18c~ngcq_OIiZT(2CfHGqql*~J-tWSz;!OJ z{ZqS(3?D*o0*zUjKx9kazewAowP0KMUAA|I6HKo6c*Y(~axD~;FnH639zX^*ERdXa zA}i3gNWxb$p80=+-oACG*|R7adqKqTjub@Xj=A!k`MYsGsH@e~WB|?((W*1fklo#T zeog-HhW^q@#n+Bc2iBHLV>GxQV7aUl-erw4v&tmxN@kT9a2ENr$f|KwPez}Q=%7y7 z5XL%@vS~AI;2Qa3Hv(XvW?gRuh7QID~w77cy3_X5D@qwO8YlGnQ(o{rJt5UoJKsWrg1u7nA^6(}`t& ztsxW)DsCJ*WraSVryZ&AOZWf4{bT#rZ-$dBT`%H{I$7GTI))FUu2)wz`FK)fpTh7- zJF}u%5ee=vRNNlbU0X zbs`l(f3TCW_`7l1_9+V<1za|7oE=h0#3y#XpGpeSg{BS3sD%h_9N+LJ@LHrFMkRx+ z&fr8H^9v!YHQ+{vr#t50u!o0KbYj<7Tg#9NlD>ZfY8in!rK%%NDQ5y)J9g;32JFeW z^}U9ulW|F+2%~b}xoV)Ne;xJXZqe}58FJO3ajcRJ(903VYOrR!fBr3;IB`7?7j>N2 z?pM(kiW3hk7UQ;(vI|x+5u9=tA0HR&&*O}bZ{H-%G`+|YhK!zITqqO&J)DF}$)$!; z;V*waP3!bYI;=Clw_%dj=|x&z6nRj=hq9eGNac;95@7rHp{^?WBFEZSjlRgC2{@9m zvvXsx-j=g08i(WT5Yw5hD%8Nkaj zJ*Kx*tk})tTEE6_9wpZX92h>p$w9A2*IrK4dbIUbnT5QZU41vGi%;vOo2ZLVZM%Pz zBv6QPzy@*D1lLQ$<0ja)ow9wc8J}m^!e}`4K1}=`jAEKWw(qB`u4jX5mo&mD8WP!w zGk)!c8bgn4(?`3Zk1;_u`k-R3+%Nj|!L0T|ac-0a1MJx6-3S5Qk9t&w^nigj{4s^- zLQK)prQpEu$@Q#T)l9Q$;5!$e6#0M8S#q%&*TCQAMtCRM+!ouVp=`~y7Gn6MI6^7( zI+nPg_t@-rXgYRL{RMX_f@4qt`Ki1UYo+Jg-Q*E|D%cT)o~G%<8jW^SEj){H^QbrW zd7AZrchvJV^TvI0)SlX6RgT)aGZj+HlPPt||lxi#=A zaH!&6URS!Csn$i)Flwk$cV zaQ%$9u$%#K_peFC+7`Foj~aVhoTAKtdx{;UW$ZY(YNml{RVh26RlVRz3oe>Ic)@Kz zGg7)UGg3^0J5-)7I^VoRem;M!fj%ohNEfmKz7UT2A!xS(XTC%&L%>VxTrZ6yPEt1 zxvFW1=+5dQKdiB1Anu4&DHIt*!8o%r{%*&%=s^sWf^+VTzsE4l>T!RybzmB~Q53u@ z&MDPWLSD^_#U+jTQ7QLEU6j84CWvwr?ZlMZqDg$;Vd?RnizxWO`Q{rX2vL#iOlR?k zreKrmq2q}NH-q`Msp!pJdn7|ysNwD4ZPMslZg?kF6StG5aPe@r?L*Iwc4SCHa>gta z%xV)q ze)I0($4OpJvu2w6EvU<0V#MY9uAIhX%7XWz_MFDV?$WGJV@B=Lw3jjzc*gC>tKT7+ zN8JVU*cR}qhR~j-le{RlPc4KqZo^b3qQ$mfkrT+pY0LOeCUt)`^uGbONMm+wgy}?U z)co2B*hRCHO?Ej zIUmptXQY$GSjK1D7cpyDsXH-dlL%_H1UrZiICARz+l6Xfdp*cNa>}{X@h{<66c-_o zOLIB7q3;c!K5c&sjHDAcPdTOF`mlW+!{OM)b?I=5bV6MO3%Hymt0zG-n|NInni zg3se8-xveWOdm1%CXmtd!Ln8z$dI=k0msZO0!@$Dwd%U>F?Ox0m{CxMZciN{6liSwZl?yuz2sj2J}L?Uege@P zzQK6Rero(UO;^q~P)orPk00x_oE59(a3S@UbJmq)fL}ocUR1exuOD^^l-*INMuLZ_ zPU`%u&d;lQ9Ark0bYf<;odO_WX8g1&t}d!_xfp*noZfL4|8}9Pv0ZY*!R6rxuhqmZ zh3jRSQA^=mi-I$9Cu?}0AJ+^riORatBj2;jBxfN+kD$yHBz>;So>2HYWcHJ*%iu6w{8Pnu5LM`=?5 z4D?y|EltH9LW*v*R?V{k;F6r3*?>T<6Opb+9~Bg;Ox?W70lWEIZ*z#<{3*o<)H=2I z!c;hs|N7)q0|!<$Zr+W9T^QH9aiV_~#+ISfP%yEv6gMbWhVV|*q}t;|mL8h5 zIp8WP_H^93O+5B=oS}KH%sQHZw(iQQuQZgvS*q>fQ z9U!iAYf%S?zLvoRcv#~GdgwLh3SiWlvlT!1V&>lH5IeqgOc*;pPC0mM@u=2e%&LEM z-8LMxDxK#_E#!x;!~1=EH&HW`ov2o{YsH0ty5GQaMQx~9kJ7WDuV73@PRlMuGMw}q zp`E!c%?W%+<>p*C)_wo$BzWZe{xxM9?73Oaz3nStAYWvxjpeIlRr*Md0ZzM7=Mz9_ z@IB)-*z@1(@tXMa-_{&4#~)6_xUPQ*#~yMBqu8Nqi^lDdv1WGW9h<-wiZR)ZgsKZQe$gs=PEcnat9j#KPVnN(eX>NTuZ8tQr5KfZ`M1+bo7 zj5-C-hKUqxSlsF16sz1oE0dcmH^S-QAi5Ln;O+d4F$eSktPgUwF3?KR`VoJQ@Ou3_ zu`;fOs|D2W_}aG`=Yx=PJ8b0xMV{M{+(^R!XnWV+pyjq+dlNf1sx5dY?vT^QxSbu@ zi5o_9V+bCGKP|FqT-B4&=ciM!n>xZe;m3HbsVJDnS?`B$^6{j|J_QjQcB2h-aa{9u zRVeg5Z|iDQ)ID#Di(!zPx!Qli2yQ4wnke;)7X78SW8Ia|N>7XJnP7{?vWmDXVTu$R zu_XG_r>&P_;dNl^UZ_y7N^{zcOt&|D%s`!PZKI-ZpxM(Mg`FZXoj8->Q`?Fus6h(! zI?=}HYj-pD7+q;Nw{r7v4E9KGJscBzq{k!&FM&N>uAu>91>EVCPSk&rl0*?k6;w-F z#Rh z^^Tn~L|+kH4;RK>5!B3rU8Bp;aB|2HFhYcFanMI;!e2@$LBQJNljw=fDjWooE&HSscz3Kf8>9NjSL{!3n z%Z1)tMUX(X-AJJN_8G~*OV1ywV)F<>K#MLJ@5-V}r8T%4>Y#IasGXSg1-;mv7;3Zt zjo^;#cQ`t9y>NdvY8|?0ssRt^-P}~OE@reCvvZ^?p$wzz#+nYaXSm=3TnTlDne1>R zcRigQz2r&(mXG%=aq}XI*>?K%ZN{!-Rm3l=E{p`P3h#7b1Cm7E2^;E@If5y0Pr|Vk zNW`MKQGJZvtyM(GowGGNb90#4t@Coxv!hJker+`N^uT|5b#(0M0d5tjQup?#qAfSB znp2}LH+oBGIXud}2OIXDxHY}Fd*b}&OTnRh>LEj=sO{f+qBMH@r>Q)u-hXYm0(y?R zD?X^?8mv%3YlW{N94}4{<@lvi>aHBZ5R`y-p^ogQLQQksQx!GM_B4%Cv$r*q=tGQ^ zsf<0uV8nkMBa{cOrVS@Qw_Z{kb$)J93iArPZjT#9yk>7w2y%6%Q>~8nF z#GrU$&!{o#NN_!89Cakv4v8ypI`ze32xq=-!@W@#rF#`YNFD9UAga__-^YwNcA%@W zM$~^m=hc7kddXpzOtEuZ-!F}xBjFO75Z`mP3q8Az9EA3}`N__eaO*NfNbOTnbz-HM z_d_k!U`Rj6>w46V)`T|{PDN*u*vx`q#2(qh9Y(0G%%KX(z!}CLi?nI3LTovuvI{zM zz62cH#=mEX4Ii&|ts5mo;>uco0Z~)N9~ggyoJ(lb33bN=W87)TRm(*D>?CIdym1Hx zcx5)LEBA7$L7kUbvbl(15x9rb=p=O~MuI(ILKGDG-Fyx)9GdI9h*8s=S0=z}?#(o@ z`!{QbQTsQ39)rUb`JJw5ID)u#Qll2c_N2Pt41oAzwJYq&IEKw(Qgxyu*hh?7QYe4c zhY#;zPml7h)SQIm8WO~frD18=jz3NFK?r??tP_2O?O-qiuhxJ9hdQmcmbTc_YJNiI z(0Fl`AN_3p5PN!C>dq`&Bm%tpwbK*DZuZvxXY^*zQm~@CvsZMS59(@lza|7ZB&(jM z*yWIF#-WzcA9LU0G~X^%4zCY&hb4cPyc5-WFPDZ|sO|(ANcYESUZfZ69g9`dWZM=K zt*foB<)n2zzcJO7g_&Ga3ueU+^?|~HO1iQIRZ}Iw-o<4r$GVUIv*LepnN{BZ z86!og8I#O(;;=iD6ufP_dmbYoL8P6i8@H1g@O}3^^HA75*!4(M)E=x)(TPSlRuJJay)p&wk-5ABf-hau;@3kG+>DXnnT*VRouQ8|K0g+=k=a3i z7Mv1EPgT*LEVGGoO)TP)cC6zSg}*m;N^wh0mI|*Q9^2yF7kmPHEDG z6K{%31xe{IUjqZ&h@`TW!4@y1)G&?juL->a2Uo zqjq)Llqv_CJa(m2u{X@E6RFWR%vsn;-BX!Dn?+rhq@vEEwoO$E-q(K9l2g>`l6U3! z5F->E<9M^Y?>)F`rn`T-r?Bfzp*zuRJYP>FpeXR9$d)lgs1P~r1Vq1}ok#=j<_o7- z;a9XX+lk0sQe~l#@8o(uyK1IcHSod0lOq2)OD$k#7IaEPwM=v&V6hcq8??W6MD2=aAQC-`1bl-evmGy=)@kewhId0sQJdlwEood zRkB(D_j!OZUZz?@kV>h$B9)wgR&me$A?)zhCy1hk*Y1C})dE_6a_~kQ)YU1{jp~$l zO|1Y+{`+pYp{)n6Z?{EV5BA28Dh(DDZ#ITyRX*7?h#}=|R2T9#zM5ePxHEONT55MI zBT{&pXlW%O$F|&rR?wL5WaN-(+#l_uk2Kcde$)qo{u!&~rSi+=SmP4HQs#P=JCvZ&3fu><1eGk8O}PHEF`+B z+r~y0a7^<-(&W<&wJN59d}rfV#cg>5mfStf8rXlua^0d4wOG!Vop5N_bZJMgrEBKy zYF-u9lXM9edqC1|KCxYh{3YQ>^%w8jNrYWE*PDpq7ETWozW%t+I(5 zqhgv_2@P>9b?ji*NHJEGN~v(}4LP>R7@A6LM^X(vAQ!i9{wACP$9fVc>HDj3%60n{fiXrzL~efQm{pKjy3};^eO`@BiF3n*C7nt-hW^{3%hz<*R-NmukCVh zxC7vT5jf06$@TbK>_thbl!ol%?z>=U&EbFg3|Q3Wu$4NZ831k1q7CdRn)RNIs8clU z6gYgt?L$>;?zIU;Q+A_&xUD@o=j@nhu<`AwaMd`34u8^(Whp+oV9G%1^rq-yO%Q*B z2U&#|v2XWlMOA>sjNPYBu$#yAwUgM*BbNkRZ*%M>KjhkVz0fae?KkimVz}^Iw;#7AvD`5wjz0c*818@0Y|mmPmw1=X#NXtu&%g}u&z z)GD^k*%1X!2OOeev1fbMiZ$wNPkR!T5~#Cd?~p5cRk|K_jarqqUC0zXV+0vS_s3~o zq!){tb2&_^rpdMgPSmLbsk?Dpb3T6s_UbHGt+XP#3P3#1I7YGzA;(6X0p@@A6w?;c zynBvO2cUO5(WktqlI$#d`M!`Vf3P?(e2jDgpHItj37!yt6X;eJYdW!&Wq!BO-mu;g zyOHyYko*FVW0N+a8M(Ie(SnIMXqqaJ4mv_RA!=;}l1Xr$YBtI0^L*e{WHYI=)IV+^ z?LwlW6T6TcLh1|y6ds=Ls`-Bhl>BC0Nq$qy%`KMvW0k)3cK@iQZ{Da1t}tFk@CRi` zkx#-gN>{C_U5MH>)sRBn7qw&dX4VmV^xljTeCK5Gu818ox^=W3J32uXxYB>;D91P- z)YYnIBP_Q@cVm^fuL3J}Kx^E}l?m%sN+*VKT8hqu9FvbhPLA+S+@62(r9;j^SLU#x ze(aqX>zV%OJ25zXk^w3Kf7UU+xgc&~6VY?kq6=Kx+l-b#9X3Y};)LV+ux_+7&Z~#u zY{$m-#Z2JD28Q zcWu^tbE0-_T6E^PEvh%{%|Y(&@GiJJ^JWgPoA{@!u4jX5_l!en#F5?T1aC#sK&`@i z?op%fHC-R1j=a}YQ>RdmxV?dUHx*-oSi7qDAImPlV1p^aA&-A_-yQ03B8&B5>Zl`& zwi$=&edml0iYssnCoznz_fqTlWs^Hqw9_yiHWrSyO>R979(9{s+azuTB$@l0#L)-) zv>U-blTO=!h2&c-!$I%1u9xCO?zT$7tb%mw4K=E8T%UEdDr(oKjUR

iXXeDIN5x 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 B!kPd8 delta 718407 zcmbTd3p|tW|34l=5-Ld&Q$!~ul{sxB;Z1aUCpjz;otX1!>~=^hVJL^pp;9`MlsRp4 zh!L5HDTiSg4PzTSZ@=|9eE;9y@AvsVe!s{6vFGmldR^D+I=rs?x}LAseQ&q;&9O4V zQPd7#opcJj$Z@OQVLMkDE;1zg^W6MW;f=7khM!}m!`}BU2e@C0-dk~?rl4@pGLucs{w))MSzf{WqBO&&ZkPNNVr+R98NO|Dk(Od z{AIUHiFE{7M=fyJI;B4Y-)QamHg&;4sb#(m1<7%awr$YddQ)JHS~~qJb^(H3N{f*0 zmqBUYxr3YWb-7ZAVYkPSlgaX`5en zKgqn7?Mh``b9CSL`m|HA3qyyCYCz$n_a|;U@gU^)*?yz)w}lZ(=b-sM-7jD*^KWJ6 zZz0O7?06jo5nBB;6i#7Y2|eEP0u#a;g7jlTd9FqYX8AZXTOQI#cvD}flZ!M2a*-S6 zPw5NyW0ltZQG$#+?F|9-JXzoh5qD3LK(2n*%;frX)tVlzjvQ8`;jh(L)F9K}+ufOLQ9 z9hN3aL`R9Xxr$ZLBEZfO*jWKh8367K01pR%sz{}3V?Rb`8p*I@2aUP$|Ew)U8=b*)2Ola95CzIDAr+|4W&tAOQV%Ny37|7o3b24%BU%>AN0U!TnC zN@l%IX2sjaJ=G~bUve*3ETzV4}J~40iFkIfRlDX z{H|@4lOzv1yaS^s)x3CD2B$)T2ia)fQ+oULvJ|kn>+CoJnTY zTW{^8n5u`}c%hRdu#ovk>)EM?atgH3E|!W7mz(~kfiep;I^Tb=o~2mNO0Q=*OS-a< z37gy0S!Sw}(wn%+g1OgGlDIAD{n?)!@V^vX6b%5BeIV}Pz+*4zpW$-;y&5R-=wJ1!ZHBj&X8(g6jH$ZN>NCOoVU{hJh{j>JbHnoLPKLcj19d$-}5^tNzgnir8 zdCXLY)RXA-PvNMk4zVW@urihT*t4nA#8juPM?ffKl}@lAu99@3;0V(boV0L6Cail? z=OI%7l5Z1S$R&m=_~&V$JOXS23Z-JN$xS~l#9u%mlU4t;P}7t6@QBQjubVnS5<7bm zdrV}G5H@x0G}ZCzNsKp=AfN##bQq^Qs)+pRR#24EQ6}UzPKJPzc;n z?c8drW7m_oa9HL@+osNqraHPk0+qt`VJ$uK;H2A!Wj?lS>Xb9p(UjQrZ$Z4v0HqRO z11XT=UXk-pDFh0g{?xj4yQ8p00r|rQ@+!&ej7(vf9K&W&7o22uMke-8T4@?c+PN(L z8d@EMQIVny$pr%$bqsFRBTB;UFHmN~4b`pTCs_C?mT?F#A1pkG79BhOTE@CWHqJ^B8bHJBOW07MLf1{0UZ)WA<lvZ!vyo zE~ci8{4E)2rpOyRG#CBEht+5e*)Fk_%B$B>VpfrA4v{!P{B&9(~jR+y6}f{;Meek73*Y zyOsYCCIf8Kie$AUZA;i(Jt~ec_@D&$5se9m>05Bs8mMu{ZXU$-2T6lX?7@ zuCOhcmDN#B*2)z%TK7YZ9L422!t-bm0&N2=mK8>9XAOAtxdqxni-n+2X|2fZ5kEZo z&IZ~#6wCfgkQAB~%VHz8NA!F2IRuI$r+)n{pYTZ;;9b{ZeYfy>m7?t-Z(Xe%2h(EV zEanm-`fJXgc{rw!QCC7B0!heo$ukXie8!bcRQwsK0fHgSI7aQ>@(OJt~#MytJn4EILCY zQIy|+4q?zX^KHs5cX{*wD!CMis`#yAIcV$p<`y_<(*^n13gwTdwWbR!I@Kdldw=Vg z{jfdtD#hxI{5T9S&z}vo$aPi(8%}+?Ga&I0Dx@UpP!fJ9DSs#lK9uAzlmr?|Vh<(} z2a_rWlYqe__rWCN!6f;?B=V0Wfbav>r8luZazZz9LMw7YJ#u18iXIo}zNc7lD? zv&^kM@;ck;n^#!KuZ|n?7292nTwxva8(o9Y7U0R~wEhW>gBIu1zhSS% z`M(1AziRwv1tFWV-s-vX{|SO;%KvWwM3T^3+qK#3_y12A{BG9$-3(r zu@A(VL32VXiy>)1DFJUh5ibkF-vRJ@_03~Ta73yhge%F79Z_(qayM5!naVj_FhB3 z1(QO8Cj@&$IHep4ee}yr5r_9UKetJD0xb}o%i-7Ivbu$(`mvAVIo;L*^mwC_Xb9mX zdS9Lb_=qOy`rHhBYIwXj14v}5goubCBI6u^!>S%W*0|SAum1kXfVC|kCQdLm;Hd;) zBNYg!6U;WU7$EWc$v7@mxT{{AwMpDdg(UzS_A2>jBcux-nm}imDOLj5Mm$wq;)T0I zW-~eLZZJNnihO&ZN`0se-vurt0IR`M$P&U#Iw=j1Oc6z>2em5^cVU6j-E5F1vUjTp zThI+H?KYm^k+hqIgi2neeeVy#TFon|6f#5vWExeHz1z%<=us=t#m)7o>4Ys* z4i1h@W0vZfKg}f{56v9mF4Fb5Y^Tf-reqSiRa0!i0VJ_%iUAV_p(%0DW};9kn6849 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�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
_oQV8O5ymWFYxx=|Y4sPs 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

GWrA?3=pg^a=eOE^ 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

Z;G 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

9e~)xSD^a*T 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�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 diff --git a/inst/OrcidLog.csv b/inst/OrcidLog.csv index ba1d329a..a174464b 100644 --- a/inst/OrcidLog.csv +++ b/inst/OrcidLog.csv @@ -15,7 +15,7 @@ "0000-0002-2970-0778","Jenna","Reps","",64,0 "0000-0002-4243-155X","Asieh","Golozar","",8,0 "0000-0002-4449-8598","Jessica","Shantha","",7,0 -"0000-0002-4949-7236","Gowtham","Rao","",611,15 +"0000-0002-4949-7236","Gowtham","Rao","",653,15 "0000-0002-6662-5850","Rupesh","Agrawal","",7,0 "0000-0002-6976-2594","Azza","Shoaibi","",84,0 "0000-0002-9612-5697","Brian","Toy","",8,0 diff --git a/inst/cohorts/1330.json b/inst/cohorts/1330.json index b8540117..e54dd6e9 100644 --- a/inst/cohorts/1330.json +++ b/inst/cohorts/1330.json @@ -20,7 +20,7 @@ "ConceptSets" : [ { "id" : 0, - "name" : "Acute Overdose (or “Acute Toxicity”) by substances with abuse potential", + "name" : "Acute Overdose (or Acute Toxicity) by substances with abuse potential", "expression" : { "items" : [ { diff --git a/inst/cohorts/1387.json b/inst/cohorts/1387.json new file mode 100644 index 00000000..461a6d09 --- /dev/null +++ b/inst/cohorts/1387.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "Methadone", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 1103640, + "CONCEPT_NAME" : "methadone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "6813", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1388.json b/inst/cohorts/1388.json new file mode 100644 index 00000000..6752ccac --- /dev/null +++ b/inst/cohorts/1388.json @@ -0,0 +1,72 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "VisitOccurrence" : { + "CodesetId" : 2, + "VisitTypeExclude" : false + } + }, + { + "ProcedureOccurrence" : { + "CodesetId" : 2, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 2, + "name" : "methadone treatment program enrollment", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 38004241, + "CONCEPT_NAME" : "Ambulatory Methadone Clinic", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "261QM2800X", + "DOMAIN_ID" : "Visit", + "VOCABULARY_ID" : "NUCC", + "CONCEPT_CLASS_ID" : "Visit" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 90 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1389.json b/inst/cohorts/1389.json new file mode 100644 index 00000000..b2459e57 --- /dev/null +++ b/inst/cohorts/1389.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "naltrexone", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 21604824, + "CONCEPT_NAME" : "naltrexone; oral", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N07BB04", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 5th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1390.json b/inst/cohorts/1390.json new file mode 100644 index 00000000..581ea075 --- /dev/null +++ b/inst/cohorts/1390.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 2, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 2, + "name" : "naltrexone maintenance therapy", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 44804691, + "CONCEPT_NAME" : "Drug addiction maintenance therapy - naltrexone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "768691000000103", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 180 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1391.json b/inst/cohorts/1391.json new file mode 100644 index 00000000..e50c7bb7 --- /dev/null +++ b/inst/cohorts/1391.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "opioid agonists", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 21604825, + "CONCEPT_NAME" : "Drugs used in opioid dependence", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N07BC", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 4th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1392.json b/inst/cohorts/1392.json new file mode 100644 index 00000000..8284affb --- /dev/null +++ b/inst/cohorts/1392.json @@ -0,0 +1,118 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "opioid antagonists", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 1114220, + "CONCEPT_NAME" : "naloxone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "7242", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1714319, + "CONCEPT_NAME" : "naltrexone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "7243", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 19014158, + "CONCEPT_NAME" : "nalmefene", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "31479", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 909841, + "CONCEPT_NAME" : "methylnaltrexone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "29899", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1393.json b/inst/cohorts/1393.json new file mode 100644 index 00000000..2eb69e63 --- /dev/null +++ b/inst/cohorts/1393.json @@ -0,0 +1,242 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 1, + "ProcedureTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 1, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "medication-assisted treatment", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 40217336, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (implant insertion); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medi...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2070", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217335, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (implant removal); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medica...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2071", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217334, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (implant insertion and removal); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the servic...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2072", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217338, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (oral); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2068", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217337, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (injectable); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-en...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2069", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217333, + "CONCEPT_NAME" : "Medication assisted treatment, naltrexone; weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled opioid tr...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2073", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217339, + "CONCEPT_NAME" : "Medication assisted treatment, methadone; weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing, if performed (provision of the services by a medicare-enrolled opioid tr...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2067", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217332, + "CONCEPT_NAME" : "Medication assisted treatment, weekly bundle not including the drug, including substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled opioid treatment program)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2074", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217331, + "CONCEPT_NAME" : "Medication assisted treatment, medication not otherwise specified; weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing, if performed (provision of the services by a me...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2075", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217326, + "CONCEPT_NAME" : "Each additional 30 minutes of counseling in a week of medication assisted treatment, (provision of the services by a medicare-enrolled opioid treatment program); list separately in addition to code for primary procedure", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2080", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217332, + "CONCEPT_NAME" : "Medication assisted treatment, weekly bundle not including the drug, including substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled opioid treatment program)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2074", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 90 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1394.json b/inst/cohorts/1394.json new file mode 100644 index 00000000..bb10b02f --- /dev/null +++ b/inst/cohorts/1394.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "nicotine replacement therapy", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 21604818, + "CONCEPT_NAME" : "nicotine; chewing gum, inhalant, nasal, sublingual, transdermal", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N07BA01", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 5th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1395.json b/inst/cohorts/1395.json new file mode 100644 index 00000000..0961b24b --- /dev/null +++ b/inst/cohorts/1395.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "OTC nicotine replacement", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 21604818, + "CONCEPT_NAME" : "nicotine; chewing gum, inhalant, nasal, sublingual, transdermal", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N07BA01", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 5th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1396.json b/inst/cohorts/1396.json new file mode 100644 index 00000000..35a3026c --- /dev/null +++ b/inst/cohorts/1396.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "varenicline", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 780442, + "CONCEPT_NAME" : "varenicline", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "591622", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1397.json b/inst/cohorts/1397.json new file mode 100644 index 00000000..48e32195 --- /dev/null +++ b/inst/cohorts/1397.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "pain management", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4083171, + "CONCEPT_NAME" : "Pain management", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "278414003", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 180 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1398.json b/inst/cohorts/1398.json new file mode 100644 index 00000000..ee2c9554 --- /dev/null +++ b/inst/cohorts/1398.json @@ -0,0 +1,123 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "terminal palliative care", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4082728, + "CONCEPT_NAME" : "Terminal care", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "182964004", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4176643, + "CONCEPT_NAME" : "Palliative procedure", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "362964009", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2514512, + "CONCEPT_NAME" : "Supervision of a hospice patient (patient not present) requiring complex and multidisciplinary care modalities involving regular development and/or revision of care plans by that individual, review of subsequent reports of patient status, review of relate", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99377", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2514513, + "CONCEPT_NAME" : "Supervision of a hospice patient (patient not present) requiring complex and multidisciplinary care modalities involving regular development and/or revision of care plans by that individual, review of subsequent reports of patient status, review of relate", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99378", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1399.json b/inst/cohorts/1399.json new file mode 100644 index 00000000..acb9d3af --- /dev/null +++ b/inst/cohorts/1399.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "alcohol misuse counseling", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4211325, + "CONCEPT_NAME" : "Alcohol consumption counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "413473000", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 90 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1400.json b/inst/cohorts/1400.json new file mode 100644 index 00000000..5999262a --- /dev/null +++ b/inst/cohorts/1400.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "smoking cessation counseling", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 46272634, + "CONCEPT_NAME" : "Counseling about tobacco use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "711028002", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 180 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1401.json b/inst/cohorts/1401.json new file mode 100644 index 00000000..4eec0add --- /dev/null +++ b/inst/cohorts/1401.json @@ -0,0 +1,412 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "psychotherapy", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 2795873, + "CONCEPT_NAME" : "Substance Abuse Treatment, Group Counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "HZ4", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "ICD10PCS", + "CONCEPT_CLASS_ID" : "ICD10PCS Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2795886, + "CONCEPT_NAME" : "Substance Abuse Treatment, Individual Psychotherapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "HZ5", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "ICD10PCS", + "CONCEPT_CLASS_ID" : "ICD10PCS Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4297063, + "CONCEPT_NAME" : "Substance use therapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "385989002", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4210149, + "CONCEPT_NAME" : "Substance abuse counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "313071005", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4043203, + "CONCEPT_NAME" : "Psychosocial intervention strategy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228558003", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1552629, + "CONCEPT_NAME" : "Group psychotherapy service for diagnosis, evaluation, or treatment of a mental health or substance use disorder provided remotely by hospital staff who are licensed to provide mental health services under applicable state law(s), when the patient is i...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "C7903", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4327941, + "CONCEPT_NAME" : "Psychotherapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "75516001", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2795900, + "CONCEPT_NAME" : "Substance Abuse Treatment, Family Counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "HZ6", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "ICD10PCS", + "CONCEPT_CLASS_ID" : "ICD10PCS Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37155220, + "CONCEPT_NAME" : "Adolescent-focused psychotherapy for anorexia nervosa", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1833251000000107", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40664776, + "CONCEPT_NAME" : "Annual, face-to-face intensive behavioral therapy for cardiovascular disease, individual, 15 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0446", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4084199, + "CONCEPT_NAME" : "Antiphobic therapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "183399002", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4079606, + "CONCEPT_NAME" : "Aversion therapy - somatic ill", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "183389007", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4296253, + "CONCEPT_NAME" : "Dementia management", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "386257007", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4117916, + "CONCEPT_NAME" : "Family, systemic, couple and sex therapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "302245002", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3657567, + "CONCEPT_NAME" : "MANTRA - Maudsley Model of Anorexia Nervosa Treatment for Adults", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1323471000000102", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4272803, + "CONCEPT_NAME" : "Sexual psychotherapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "63386006", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44811077, + "CONCEPT_NAME" : "Behavioural parent training", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "882381000000106", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209052, + "CONCEPT_NAME" : "CBT-ED - Cognitive behavioural therapy for eating disorders", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111811000000109", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37155031, + "CONCEPT_NAME" : "Cognitive behavioural therapy for bipolar disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1771581000000100", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37154898, + "CONCEPT_NAME" : "Cognitive behavioural therapy for personality disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "149451000000104", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4079611, + "CONCEPT_NAME" : "Conscious blood pressure control", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "183413003", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1402.json b/inst/cohorts/1402.json new file mode 100644 index 00000000..93033f8d --- /dev/null +++ b/inst/cohorts/1402.json @@ -0,0 +1,140 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "group therapy", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 2795873, + "CONCEPT_NAME" : "Substance Abuse Treatment, Group Counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "HZ4", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "ICD10PCS", + "CONCEPT_CLASS_ID" : "ICD10PCS Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4079501, + "CONCEPT_NAME" : "Aversion therapy - alcoholism", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "183388004", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1552629, + "CONCEPT_NAME" : "Group psychotherapy service for diagnosis, evaluation, or treatment of a mental health or substance use disorder provided remotely by hospital staff who are licensed to provide mental health services under applicable state law(s), when the patient is i...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "C7903", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2213548, + "CONCEPT_NAME" : "Group psychotherapy (other than of a multiple-family group)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "90853", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4296166, + "CONCEPT_NAME" : "Group psychotherapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "76168009", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1403.json b/inst/cohorts/1403.json new file mode 100644 index 00000000..442ea603 --- /dev/null +++ b/inst/cohorts/1403.json @@ -0,0 +1,117 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "family psychotherapy", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4297063, + "CONCEPT_NAME" : "Substance use therapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "385989002", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4210149, + "CONCEPT_NAME" : "Substance abuse counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "313071005", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2795900, + "CONCEPT_NAME" : "Substance Abuse Treatment, Family Counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "HZ6", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "ICD10PCS", + "CONCEPT_CLASS_ID" : "ICD10PCS Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4028920, + "CONCEPT_NAME" : "Family psychotherapy procedure", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "108313002", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 90 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1404.json b/inst/cohorts/1404.json new file mode 100644 index 00000000..2f084587 --- /dev/null +++ b/inst/cohorts/1404.json @@ -0,0 +1,134 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "behavioral therapies", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 44811077, + "CONCEPT_NAME" : "Behavioural parent training", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "882381000000106", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209052, + "CONCEPT_NAME" : "CBT-ED - Cognitive behavioural therapy for eating disorders", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111811000000109", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37155031, + "CONCEPT_NAME" : "Cognitive behavioural therapy for bipolar disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1771581000000100", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37154898, + "CONCEPT_NAME" : "Cognitive behavioural therapy for personality disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "149451000000104", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4040976, + "CONCEPT_NAME" : "Behavioral therapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "166001", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 365 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1405.json b/inst/cohorts/1405.json new file mode 100644 index 00000000..cdbac0f3 --- /dev/null +++ b/inst/cohorts/1405.json @@ -0,0 +1,134 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "12-step facilitation", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 44811077, + "CONCEPT_NAME" : "Behavioural parent training", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "882381000000106", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209052, + "CONCEPT_NAME" : "CBT-ED - Cognitive behavioural therapy for eating disorders", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111811000000109", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37155031, + "CONCEPT_NAME" : "Cognitive behavioural therapy for bipolar disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1771581000000100", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37154898, + "CONCEPT_NAME" : "Cognitive behavioural therapy for personality disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "149451000000104", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4040976, + "CONCEPT_NAME" : "Behavioral therapy", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "166001", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 365 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1406.json b/inst/cohorts/1406.json new file mode 100644 index 00000000..34485d27 --- /dev/null +++ b/inst/cohorts/1406.json @@ -0,0 +1,514 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "harm reduction interventions", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 44792681, + "CONCEPT_NAME" : "Needle and syringe exchange", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "344671000000100", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44809825, + "CONCEPT_NAME" : "Provision of information about needle and syringe exchange scheme", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "865261000000102", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209005, + "CONCEPT_NAME" : "Provision of information about psychoactive substance use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111281000000101", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209000, + "CONCEPT_NAME" : "Provision of information about alcohol use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111231000000100", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4174714, + "CONCEPT_NAME" : "Substance use education", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "425014005", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46272515, + "CONCEPT_NAME" : "Education about substance abuse", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "710893009", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4135675, + "CONCEPT_NAME" : "Alcohol disorder monitoring", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "413130000", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44791051, + "CONCEPT_NAME" : "Drug abuse monitoring", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "247781000000105", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4243827, + "CONCEPT_NAME" : "Drug addiction counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "60112009", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4175010, + "CONCEPT_NAME" : "Referral to drug addiction rehabilitation service", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "4266003", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3661916, + "CONCEPT_NAME" : "Provision of information about sedative use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1239281000000105", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209004, + "CONCEPT_NAME" : "Provision of information about opioid use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111271000000103", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209003, + "CONCEPT_NAME" : "Provision of information about tranquilliser use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111261000000105", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209002, + "CONCEPT_NAME" : "Provision of information about stimulant use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111251000000107", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37209001, + "CONCEPT_NAME" : "Provision of information about cannabis use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1111241000000109", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217334, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (implant insertion and removal); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the servic...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2072", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217326, + "CONCEPT_NAME" : "Each additional 30 minutes of counseling in a week of medication assisted treatment, (provision of the services by a medicare-enrolled opioid treatment program); list separately in addition to code for primary procedure", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2080", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217331, + "CONCEPT_NAME" : "Medication assisted treatment, medication not otherwise specified; weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing, if performed (provision of the services by a me...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2075", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217332, + "CONCEPT_NAME" : "Medication assisted treatment, weekly bundle not including the drug, including substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled opioid treatment program)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2074", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217333, + "CONCEPT_NAME" : "Medication assisted treatment, naltrexone; weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled opioid tr...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2073", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217335, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (implant removal); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medica...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2071", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217336, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (implant insertion); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medi...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2070", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217337, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (injectable); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-en...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2069", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217338, + "CONCEPT_NAME" : "Medication assisted treatment, buprenorphine (oral); weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing if performed (provision of the services by a medicare-enrolled...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2068", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40217339, + "CONCEPT_NAME" : "Medication assisted treatment, methadone; weekly bundle including dispensing and/or administration, substance use counseling, individual and group therapy, and toxicology testing, if performed (provision of the services by a medicare-enrolled opioid tr...", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2067", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44804161, + "CONCEPT_NAME" : "Supervised consumption of medication", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "710131000000108", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4273851, + "CONCEPT_NAME" : "Infection prevention education", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "63994009", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 365 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1407.json b/inst/cohorts/1407.json new file mode 100644 index 00000000..ebb79ce7 --- /dev/null +++ b/inst/cohorts/1407.json @@ -0,0 +1,123 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "VisitOccurrence" : { + "CodesetId" : 0, + "VisitTypeExclude" : false + } + }, + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "specialty addiction treatment", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 38004257, + "CONCEPT_NAME" : "Ambulatory Substance Use Disorder Rehabilitation Clinic / Center", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "261QR0405X", + "DOMAIN_ID" : "Visit", + "VOCABULARY_ID" : "NUCC", + "CONCEPT_CLASS_ID" : "Visit" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 38004274, + "CONCEPT_NAME" : "Substance Use Disorder Rehabilitation Hospital Unit", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "276400000X", + "DOMAIN_ID" : "Visit", + "VOCABULARY_ID" : "NUCC", + "CONCEPT_CLASS_ID" : "Visit" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 8974, + "CONCEPT_NAME" : "Non-residential Substance Abuse Treatment Facility", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "57", + "DOMAIN_ID" : "Visit", + "VOCABULARY_ID" : "CMS Place of Service", + "CONCEPT_CLASS_ID" : "Visit" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 8957, + "CONCEPT_NAME" : "Residential Substance Abuse Treatment Facility", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "55", + "DOMAIN_ID" : "Visit", + "VOCABULARY_ID" : "CMS Place of Service", + "CONCEPT_CLASS_ID" : "Visit" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1408.json b/inst/cohorts/1408.json new file mode 100644 index 00000000..18727654 --- /dev/null +++ b/inst/cohorts/1408.json @@ -0,0 +1,174 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + }, + { + "Measurement" : { + "CodesetId" : 0, + "MeasurementTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "alcohol use screening", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 2514536, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) abuse structured screening (eg, AUDIT, DAST), and brief intervention (SBI) services; 15 to 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99408", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 915726, + "CONCEPT_NAME" : "Patient identified as an unhealthy alcohol user when screened for unhealthy alcohol use using a systematic screening method and received brief counseling", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G9621", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4062656, + "CONCEPT_NAME" : "Alcohol consumption screening", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "171208001", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2514537, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) abuse structured screening (eg, AUDIT, DAST), and brief intervention (SBI) services; greater than 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99409", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 801323, + "CONCEPT_NAME" : "Patient screened for unhealthy alcohol use using a systematic screening method and not identified as an unhealthy alcohol user", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2197", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 801324, + "CONCEPT_NAME" : "Patient identified as an unhealthy alcohol user when screened for unhealthy alcohol use using a systematic screening method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G2196", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 915727, + "CONCEPT_NAME" : "Patient not identified as an unhealthy alcohol user when screened for unhealthy alcohol use using a systematic screening method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G9622", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 1 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1409.json b/inst/cohorts/1409.json new file mode 100644 index 00000000..4ae124e8 --- /dev/null +++ b/inst/cohorts/1409.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Measurement" : { + "CodesetId" : 0, + "MeasurementTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "preventive screening for substance use", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4158091, + "CONCEPT_NAME" : "Screening for substance abuse", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "370854007", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 1 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1410.json b/inst/cohorts/1410.json new file mode 100644 index 00000000..cef88fe9 --- /dev/null +++ b/inst/cohorts/1410.json @@ -0,0 +1,622 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Measurement" : { + "CodesetId" : 0, + "MeasurementTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + }, + { + "ProcedureOccurrence" : { + "CodesetId" : 0, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "use of substance use screening tools", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 37208717, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Opioid total score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1108251000000100", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37310702, + "CONCEPT_NAME" : "CRAFFT (Car, Relax, Alone, Forget, Family/Friends, Trouble) interview version 2.1", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "153601000000102", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4169338, + "CONCEPT_NAME" : "Severity of opiate dependence questionnaire", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273800005", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4157230, + "CONCEPT_NAME" : "Alcohol use disorders identification test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273265007", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4159408, + "CONCEPT_NAME" : "Alcohol dependence scale", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273264006", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208713, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Alcohol total score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1108211000000104", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4159696, + "CONCEPT_NAME" : "Fagerstrom test for nicotine dependence", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273453005", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4165123, + "CONCEPT_NAME" : "Michigan alcoholism screening test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273608000", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4158756, + "CONCEPT_NAME" : "Short alcohol dependence data", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273802002", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44792141, + "CONCEPT_NAME" : "Alcohol use disorder identification test consumption questionnaire", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "335811000000106", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 42536965, + "CONCEPT_NAME" : "CRAFFT Screening Test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "736042002", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3655567, + "CONCEPT_NAME" : "Opioid Risk Tool", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "866023006", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46234680, + "CONCEPT_NAME" : "Alcohol Use Disorder Identification Test - Consumption [AUDIT-C]", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "72109-2", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Survey" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4159568, + "CONCEPT_NAME" : "Drug abuse screening test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273426006", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46234681, + "CONCEPT_NAME" : "Alcohol Use Disorder Identification Test [AUDIT]", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "72110-0", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Survey" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 42536966, + "CONCEPT_NAME" : "CRAFFT Screening Test version 2.0", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "736043007", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3657588, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Other psychoactive substance score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1323791000000108", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208715, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Stimulant total score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1108231000000107", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208712, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Tobacco total score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1108201000000101", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208716, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Sedative total score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1108241000000103", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4164813, + "CONCEPT_NAME" : "Cage questionnaire", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273347006", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4167760, + "CONCEPT_NAME" : "Drinking problem scale", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273425005", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208714, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite) - Cannabis total score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1108221000000105", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208560, + "CONCEPT_NAME" : "Adapted ASSIST-Lite (Alcohol, Smoking and Substance Involvement Screening Test Lite)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1106631000000106", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44792142, + "CONCEPT_NAME" : "Alcohol use disorder identification test Piccinelli consumption questionnaire", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "335841000000107", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36674484, + "CONCEPT_NAME" : "Alcohol Use Disorders Identification Test for Primary Care score", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "774089008", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4165448, + "CONCEPT_NAME" : "Severity of alcohol dependence questionnaire", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "273799006", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2514536, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) abuse structured screening (eg, AUDIT, DAST), and brief intervention (SBI) services; 15 to 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99408", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2514537, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) abuse structured screening (eg, AUDIT, DAST), and brief intervention (SBI) services; greater than 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99409", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2617464, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) misuse structured assessment (e.g., audit, dast), and brief intervention 15 to 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0396", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2617465, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) misuse structured assessment (e.g., audit, dast), and intervention, greater than 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0397", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40664833, + "CONCEPT_NAME" : "Annual alcohol misuse screening, 5 to 15 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0442", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40664725, + "CONCEPT_NAME" : "Brief face-to-face behavioral counseling for alcohol misuse, 15 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0443", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 1 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1411.json b/inst/cohorts/1411.json new file mode 100644 index 00000000..ed541c4a --- /dev/null +++ b/inst/cohorts/1411.json @@ -0,0 +1,2123 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Measurement" : { + "CodesetId" : 0, + "MeasurementTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "laboratory toxicology tests", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 40772940, + "CONCEPT_NAME" : "Psychiatric drugs", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP31449-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37078900, + "CONCEPT_NAME" : "Nicotine | Gastric fluid | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP387885-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3032575, + "CONCEPT_NAME" : "Barbiturates/Creatinine [Mass Ratio] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "41468-0", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4326820, + "CONCEPT_NAME" : "Ethanol measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "430837008", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3026040, + "CONCEPT_NAME" : "Para hydroxyamphetamine [Mass] of Dose", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "4375-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40481408, + "CONCEPT_NAME" : "Measurement of opiate agonist", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "442007007", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21494866, + "CONCEPT_NAME" : "Amitriptyline and Nortriptyline panel - Gastric fluid", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "81207-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3028841, + "CONCEPT_NAME" : "Benzodiazepine metabolites [Presence] in Urine by Screen method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "42235-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3015906, + "CONCEPT_NAME" : "Levoamphetamine/Amphetamines.total in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "31016-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40655173, + "CONCEPT_NAME" : "Nicotine|Moment in time|Serum or Plasma", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG47379-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40766846, + "CONCEPT_NAME" : "PENTobarbital/Creatinine [Mass Ratio] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "64132-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37049368, + "CONCEPT_NAME" : "Valproate Free | Serum or Plasma | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390872-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37071236, + "CONCEPT_NAME" : "Drugs of abuse 7 and Alcohol and Tricyclics panel | Urine | Drug and Toxicology Panels", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP392064-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21494867, + "CONCEPT_NAME" : "Amitriptyline and Nortriptyline panel - Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "81208-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4280954, + "CONCEPT_NAME" : "Cannabinoids measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "66689000", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4096080, + "CONCEPT_NAME" : "Haloperidol measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "25104002", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533688, + "CONCEPT_NAME" : "Barbiturates panel - Saliva (oral fluid) by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73663-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46257673, + "CONCEPT_NAME" : "Antidepressants, tricyclic and other cyclicals", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1022251", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4 Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1247077, + "CONCEPT_NAME" : "Benzodiazepine in urine by confirmatory technique", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "364681000119104", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533687, + "CONCEPT_NAME" : "Benzodiazepines panel - Saliva (oral fluid) by Screen method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73662-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4255267, + "CONCEPT_NAME" : "Drug of abuse, quantitative screen, includes amphetamines, barbiturates, benzodiazepines, cannabinoids, cocaine, methadone, methaqualone, opiates, phencyclidines and propoxyphene", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "40823001", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533448, + "CONCEPT_NAME" : "Amphetamine induced platelet IgG Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73425-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37062255, + "CONCEPT_NAME" : "Valproate | Serum or Plasma | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390867-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37045698, + "CONCEPT_NAME" : "Valproate | Urine | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390868-0", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43534383, + "CONCEPT_NAME" : "PHENobarbital induced platelet IgG Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73209-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3022432, + "CONCEPT_NAME" : "Barbiturates confirm method [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19278-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4021313, + "CONCEPT_NAME" : "Barbiturates measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "105079003", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3034429, + "CONCEPT_NAME" : "Barbiturates screen method [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19277-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21492624, + "CONCEPT_NAME" : "Primidone and PHENobarbital trough panel - Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "78436-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533447, + "CONCEPT_NAME" : "Amphetamine induced platelet IgM Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73424-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40655612, + "CONCEPT_NAME" : "Valproate|Moment in time|Serum or Plasma", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG49789-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3045233, + "CONCEPT_NAME" : "Primidone+PHENobarbital [Moles/volume] in Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "34365-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46284938, + "CONCEPT_NAME" : "Serum pentobarbital concentration measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "958101000000104", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4006367, + "CONCEPT_NAME" : "Allobarbital measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "121436007", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4104671, + "CONCEPT_NAME" : "Cocaine measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "29142004", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43534240, + "CONCEPT_NAME" : "Amitriptyline induced neutrophil IgG Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73066-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40771543, + "CONCEPT_NAME" : "Amphetamines panel - Meconium by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "69021-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3034963, + "CONCEPT_NAME" : "Benzodiazepines/Creatinine [Mass Ratio] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "41467-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37169494, + "CONCEPT_NAME" : "Amphetamine mass concentration in serum", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "16031000237109", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1001641, + "CONCEPT_NAME" : "Benzodiazepines panel [Presence] - Urine by Screen method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "94117-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3001241, + "CONCEPT_NAME" : "Benzodiazepines tested for in Urine by Screen method Narrative", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19280-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40766847, + "CONCEPT_NAME" : "PHENobarbital/Creatinine [Mass Ratio] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "64133-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37169917, + "CONCEPT_NAME" : "Amphetamine mass concentration in oral fluid", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "15511000237104", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37024054, + "CONCEPT_NAME" : "Valproate.free/Valproate.total | Serum or Plasma | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390873-0", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533556, + "CONCEPT_NAME" : "Amitriptyline induced platelet IgM Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73533-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3042517, + "CONCEPT_NAME" : "Benzodiazepines panel - Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "53745-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37041970, + "CONCEPT_NAME" : "Valproate induced platelet IgM | Serum or Plasma | Serology - non-micro", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP403326-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40655546, + "CONCEPT_NAME" : "Tricyclic antidepressants|Moment in time|Serum or Plasma", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG46403-8", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3013169, + "CONCEPT_NAME" : "Benzodiazepines confirm method [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19286-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4324133, + "CONCEPT_NAME" : "Valproic acid measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "71466003", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44806422, + "CONCEPT_NAME" : "Opiate screening test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "791821000000106", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 42529009, + "CONCEPT_NAME" : "Brallobarbital [Mass/volume] in Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "82873-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43534382, + "CONCEPT_NAME" : "PHENobarbital induced platelet IgM Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73208-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4269834, + "CONCEPT_NAME" : "Finding of serum phenobarbital level", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "365742004", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3006476, + "CONCEPT_NAME" : "PHENobarbital Free [Mass/volume] in Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "3951-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4221377, + "CONCEPT_NAME" : "Toxicology screen, sedatives", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "40167001", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40771548, + "CONCEPT_NAME" : "Opiates panel - Meconium by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "69026-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533555, + "CONCEPT_NAME" : "Amitriptyline induced platelet IgG Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73532-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3034789, + "CONCEPT_NAME" : "Benzodiazepines positive [Identifier] in Urine by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19282-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3033472, + "CONCEPT_NAME" : "Benzodiazepines positive [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "3387-8", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37039135, + "CONCEPT_NAME" : "Valproate induced platelet IgG | Serum or Plasma | Serology - non-micro", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP403325-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4260399, + "CONCEPT_NAME" : "Tricyclic antidepressant measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "44787002", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40766849, + "CONCEPT_NAME" : "Secobarbital/Creatinine [Mass Ratio] of Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "64135-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4211848, + "CONCEPT_NAME" : "Benzodiazepine measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "574005", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1616297, + "CONCEPT_NAME" : "Mephobarbital and PHENobarbital panel - Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "97183-8", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37025133, + "CONCEPT_NAME" : "Nornicotine | Urine | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP387902-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3013362, + "CONCEPT_NAME" : "Benzodiazepines tested for in Urine by Screen method Nominal", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19279-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37169029, + "CONCEPT_NAME" : "Amphetamine mass concentration in plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "14371000237103", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36713684, + "CONCEPT_NAME" : "Clinical Institute Withdrawal Assessment for Benzodiazepines scale", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "718619009", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Staging / Scales" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37173225, + "CONCEPT_NAME" : "Barbiturate mass concentration in fluid", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "5811000237103", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37077798, + "CONCEPT_NAME" : "Valproate Free | Saliva | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390871-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3004555, + "CONCEPT_NAME" : "Barbiturate screen present [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "3374-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4273557, + "CONCEPT_NAME" : "Amphetamine measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "63817004", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40656638, + "CONCEPT_NAME" : "Nicotine|Any Property|Any Time|Any System|Any Method", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG37562-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3037571, + "CONCEPT_NAME" : "Benzodiazepines negative [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "3385-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44806443, + "CONCEPT_NAME" : "Tricyclic drug screening test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "792061000000101", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37060400, + "CONCEPT_NAME" : "Nicotine | Meconium | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP387887-5", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43534147, + "CONCEPT_NAME" : "PHENobarbital induced neutrophil IgM Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "72973-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40655611, + "CONCEPT_NAME" : "Valproate.free|Moment in time|Serum or Plasma", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG47174-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3019270, + "CONCEPT_NAME" : "Barbiturate screen absent [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "3372-0", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3000684, + "CONCEPT_NAME" : "Barbiturates positive [Identifier] in Urine by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19274-0", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44812145, + "CONCEPT_NAME" : "Urine benzodiazepine screening test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "911081000000106", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37046785, + "CONCEPT_NAME" : "Valproate.bound/Valproate.total | Serum or Plasma | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390869-8", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37022969, + "CONCEPT_NAME" : "Valproate | Body fluid | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390866-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43534239, + "CONCEPT_NAME" : "Amitriptyline induced neutrophil IgM Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "73065-5", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3015840, + "CONCEPT_NAME" : "Allyl-sec-butyl-barbiturate [Mass/volume] in Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "12490-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3021426, + "CONCEPT_NAME" : "Barbiturates present [Identifier] in Serum or Plasma by Screen method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "21091-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3009354, + "CONCEPT_NAME" : "Benzodiazepines screen method [Identifier] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19285-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37048890, + "CONCEPT_NAME" : "Nicotine | XXX | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP387890-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3002874, + "CONCEPT_NAME" : "Barbiturates tested for in Urine by Screen method Narrative", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19272-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1175388, + "CONCEPT_NAME" : "Benzodiazepines panel - Urine by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "90890-5", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37027040, + "CONCEPT_NAME" : "Valproate.free and Valproate panel | Serum or Plasma | Drug and Toxicology Panels", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP392133-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1988963, + "CONCEPT_NAME" : "Designer benzodiazepines [Presence] in Urine by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99262-8", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3043690, + "CONCEPT_NAME" : "Dextromethamphetamine/Levomethamphetamine [Mass Ratio] in Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "32643-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43534148, + "CONCEPT_NAME" : "PHENobarbital induced neutrophil IgG Ab [Presence] in Serum or Plasma by Flow cytometry (FC)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "72974-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46257559, + "CONCEPT_NAME" : "Sedative hypnotics (non-benzodiazepines)", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "80368", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3032544, + "CONCEPT_NAME" : "Amitriptyline and Nortriptyline panel - Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "43106-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3003644, + "CONCEPT_NAME" : "Primidone+PHENobarbital [Mass/volume] in Serum or Plasma", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "10547-8", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37043740, + "CONCEPT_NAME" : "Nicotine | Urine | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP387889-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3000074, + "CONCEPT_NAME" : "Barbiturates tested for in Urine by Screen method Nominal", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "19271-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4021452, + "CONCEPT_NAME" : "Clozapine measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "105140007", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21494870, + "CONCEPT_NAME" : "Amitriptyline and Nortriptyline panel - Specimen", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "81211-5", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40766842, + "CONCEPT_NAME" : "Amobarbital/Creatinine [Mass Ratio] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "64128-2", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4091463, + "CONCEPT_NAME" : "Volatile substance screening", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "252170002", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3039447, + "CONCEPT_NAME" : "Barbiturates.other [Mass/volume] in Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "53735-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37073815, + "CONCEPT_NAME" : "Nicotine and Metabolites panel | Urine | Drug and Toxicology Panels", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP392108-9", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37169036, + "CONCEPT_NAME" : "Benzodiazepine mass concentration in urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "14421000237108", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40772939, + "CONCEPT_NAME" : "Controlled substances and drugs of abuse", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP31448-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4021450, + "CONCEPT_NAME" : "Chlorprothixene measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "105125005", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40655174, + "CONCEPT_NAME" : "Nicotine|Moment in time|Urine", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG47377-3", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37032910, + "CONCEPT_NAME" : "Nicotine and Cotinine panel | Serum or Plasma | Drug and Toxicology Panels", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP392107-1", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1616954, + "CONCEPT_NAME" : "Amphetamines panel - Urine by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "97161-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40653859, + "CONCEPT_NAME" : "Tricyclic antidepressants|Presence or Threshold|Moment in time|Any Urine specimen", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LG590-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Group" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3050636, + "CONCEPT_NAME" : "Barbiturates panel - Urine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "53746-4", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4203316, + "CONCEPT_NAME" : "Nicotine measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "5338000", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37077184, + "CONCEPT_NAME" : "Valproate.protein bound | Serum or Plasma | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP390870-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4020273, + "CONCEPT_NAME" : "Hydroxymethoxyphenamine measurement", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "105209006", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 43533385, + "CONCEPT_NAME" : "Barbiturates panel - Blood by Confirmatory method", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "72480-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "Lab Test" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37033562, + "CONCEPT_NAME" : "Nicotine | Hair | Drug toxicology", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP387886-7", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37155997, + "CONCEPT_NAME" : "Benzodiazepine mass concentration in oral fluid", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "13871000237108", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44806229, + "CONCEPT_NAME" : "Benzodiazepine screening test", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "800681000000104", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Procedure" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37055737, + "CONCEPT_NAME" : "Valproate induced neutrophil IgG | Serum or Plasma | Serology - non-micro", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "LP402849-6", + "DOMAIN_ID" : "Measurement", + "VOCABULARY_ID" : "LOINC", + "CONCEPT_CLASS_ID" : "LOINC Hierarchy" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 0 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 1 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1412.json b/inst/cohorts/1412.json new file mode 100644 index 00000000..6df84610 --- /dev/null +++ b/inst/cohorts/1412.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "naloxone dispensing", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 1114220, + "CONCEPT_NAME" : "naloxone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "7242", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 1, + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1413.json b/inst/cohorts/1413.json new file mode 100644 index 00000000..0afd8f77 --- /dev/null +++ b/inst/cohorts/1413.json @@ -0,0 +1,157 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Observation" : { + "CodesetId" : 1, + "ObservationTypeExclude" : false + } + }, + { + "ProcedureOccurrence" : { + "CodesetId" : 1, + "ProcedureTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "Screening, Brief Intervention, and Referral to Treatment (SBIRT)", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 2514536, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) abuse structured screening (eg, AUDIT, DAST), and brief intervention (SBI) services; 15 to 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99408", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2514537, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) abuse structured screening (eg, AUDIT, DAST), and brief intervention (SBI) services; greater than 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "99409", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "CPT4", + "CONCEPT_CLASS_ID" : "CPT4" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2617464, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) misuse structured assessment (e.g., audit, dast), and brief intervention 15 to 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0396", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 2617465, + "CONCEPT_NAME" : "Alcohol and/or substance (other than tobacco) misuse structured assessment (e.g., audit, dast), and intervention, greater than 30 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0397", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40664833, + "CONCEPT_NAME" : "Annual alcohol misuse screening, 5 to 15 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0442", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40664725, + "CONCEPT_NAME" : "Brief face-to-face behavioral counseling for alcohol misuse, 15 minutes", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "G0443", + "DOMAIN_ID" : "Procedure", + "VOCABULARY_ID" : "HCPCS", + "CONCEPT_CLASS_ID" : "HCPCS" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1415.json b/inst/cohorts/1415.json new file mode 100644 index 00000000..c3d24ea2 --- /dev/null +++ b/inst/cohorts/1415.json @@ -0,0 +1,89 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "impaired control", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4027643, + "CONCEPT_NAME" : "Unable to control drinking", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228340008", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4215819, + "CONCEPT_NAME" : "Compulsive uncontrollable drug taking", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "416993008", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 180 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1416.json b/inst/cohorts/1416.json new file mode 100644 index 00000000..0a346472 --- /dev/null +++ b/inst/cohorts/1416.json @@ -0,0 +1,151 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "neglect of roles or social impairment", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4313342, + "CONCEPT_NAME" : "Altered behavior due to substance use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "424461008", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37164784, + "CONCEPT_NAME" : "Aggression caused by ethanol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1234773008", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37164787, + "CONCEPT_NAME" : "Disinhibition caused by ethanol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1234777009", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4042878, + "CONCEPT_NAME" : "Undue priority given to drink-related activities", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228334001", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4036418, + "CONCEPT_NAME" : "Priority of drug-related activities", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228415000", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4038713, + "CONCEPT_NAME" : "Undue priority given to drug-related activities", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228417008", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 14 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1417.json b/inst/cohorts/1417.json new file mode 100644 index 00000000..d0eec444 --- /dev/null +++ b/inst/cohorts/1417.json @@ -0,0 +1,134 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Observation" : { + "CodesetId" : 1, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "risky use", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4226563, + "CONCEPT_NAME" : "Risk control behavior: alcohol use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "405137009", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4229859, + "CONCEPT_NAME" : "Risk control behavior: drug use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "405138004", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4038703, + "CONCEPT_NAME" : "Drunk driving", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228354000", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4042885, + "CONCEPT_NAME" : "Charged with drunk driving offence", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228355004", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4027647, + "CONCEPT_NAME" : "Convicted of drunk driving", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228356003", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1418.json b/inst/cohorts/1418.json new file mode 100644 index 00000000..5478514e --- /dev/null +++ b/inst/cohorts/1418.json @@ -0,0 +1,185 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "tolerance", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4038700, + "CONCEPT_NAME" : "Tolerance to alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228349009", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 45769951, + "CONCEPT_NAME" : "Opioid tolerant", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "919561000000107", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37109199, + "CONCEPT_NAME" : "Physical tolerance to opiate drug", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "22121000087104", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4038701, + "CONCEPT_NAME" : "Behavioral tolerance to alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228350009", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4042884, + "CONCEPT_NAME" : "Physical tolerance to alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228351008", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4038702, + "CONCEPT_NAME" : "Psychological tolerance to alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228352001", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4027646, + "CONCEPT_NAME" : "Reverse tolerance to alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "228353006", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37116662, + "CONCEPT_NAME" : "Opiate tolerance", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "733462007", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Observable Entity" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 90 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1419.json b/inst/cohorts/1419.json new file mode 100644 index 00000000..5ff80ccf --- /dev/null +++ b/inst/cohorts/1419.json @@ -0,0 +1,361 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + }, + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "pattern of use causing harm or distress", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 35610540, + "CONCEPT_NAME" : "Harmful use of opioid", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094231000000109", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610541, + "CONCEPT_NAME" : "Harmful use of sedative", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094241000000100", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610542, + "CONCEPT_NAME" : "Harmful use of barbiturate", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094251000000102", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610524, + "CONCEPT_NAME" : "Harmful use of antidepressant drug", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094071000000103", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610545, + "CONCEPT_NAME" : "Harmful use of synthetic cathinone", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094281000000108", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610537, + "CONCEPT_NAME" : "Harmful use of hallucinogen", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094201000000103", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 44788726, + "CONCEPT_NAME" : "Harmful alcohol use", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "198431000000105", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610544, + "CONCEPT_NAME" : "Harmful use of synthetic cannabinoid", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094271000000106", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37205764, + "CONCEPT_NAME" : "Harmful pattern of use of amphetamine and/or amphetamine derivative", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "785277001", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610534, + "CONCEPT_NAME" : "Harmful use of cannabis", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094171000000104", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36676296, + "CONCEPT_NAME" : "Harmful use of hypnotic", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "772999000", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610533, + "CONCEPT_NAME" : "Harmful use of amphetamine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094161000000106", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36676297, + "CONCEPT_NAME" : "Harmful use of anxiolytic", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "773000004", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610532, + "CONCEPT_NAME" : "Harmful use of alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094151000000108", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610538, + "CONCEPT_NAME" : "Harmful use of inhalant", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094211000000101", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610543, + "CONCEPT_NAME" : "Harmful use of stimulant", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094261000000104", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35610536, + "CONCEPT_NAME" : "Harmful use of cocaine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1094191000000100", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37110444, + "CONCEPT_NAME" : "Harmful pattern of use of nicotine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "724697004", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 30 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1420.json b/inst/cohorts/1420.json new file mode 100644 index 00000000..aa46892d --- /dev/null +++ b/inst/cohorts/1420.json @@ -0,0 +1,236 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "medical conditions mimicking intoxication", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 378143, + "CONCEPT_NAME" : "Encephalitis", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "45170000", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 374009, + "CONCEPT_NAME" : "Organic mental disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "111479008", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 434889, + "CONCEPT_NAME" : "Dissociative disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "44376007", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 4133611, + "CONCEPT_NAME" : "Traumatic or nontraumatic brain injury", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "127294003", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 444100, + "CONCEPT_NAME" : "Mood disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "46206005", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 442077, + "CONCEPT_NAME" : "Anxiety disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "197480006", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 439706, + "CONCEPT_NAME" : "Psychosis with origin in childhood", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "191687005", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 30361, + "CONCEPT_NAME" : "Hypoglycemic disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "237630007", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 436073, + "CONCEPT_NAME" : "Psychotic disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "69322001", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35609901, + "CONCEPT_NAME" : "Late onset substance-induced psychosis", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1087461000000107", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 434900, + "CONCEPT_NAME" : "Drug-induced psychosis", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "191483003", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 14 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1421.json b/inst/cohorts/1421.json new file mode 100644 index 00000000..eae4c841 --- /dev/null +++ b/inst/cohorts/1421.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "hypoglycemia", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 30361, + "CONCEPT_NAME" : "Hypoglycemic disorder", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "237630007", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 7 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1422.json b/inst/cohorts/1422.json new file mode 100644 index 00000000..9469858b --- /dev/null +++ b/inst/cohorts/1422.json @@ -0,0 +1,66 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "stroke", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 381316, + "CONCEPT_NAME" : "Cerebrovascular accident", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "230690007", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 7 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 30 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1423.json b/inst/cohorts/1423.json new file mode 100644 index 00000000..f188eb4d --- /dev/null +++ b/inst/cohorts/1423.json @@ -0,0 +1,100 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 1, + "ConditionTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "single acute intoxication", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 607209, + "CONCEPT_NAME" : "Acute intoxication", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1149334009", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 3178217, + "CONCEPT_NAME" : "Acute lorazepam intoxication", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "31430001000004108", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "Nebraska Lexicon", + "CONCEPT_CLASS_ID" : "Clinical Finding" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 1245119, + "CONCEPT_NAME" : "Acute opioid intoxication", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1296773009", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 7 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1424.json b/inst/cohorts/1424.json new file mode 100644 index 00000000..de9a7a2f --- /dev/null +++ b/inst/cohorts/1424.json @@ -0,0 +1,216 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 1, + "ConditionTypeExclude" : false + } + }, + { + "DrugExposure" : { + "CodesetId" : 0, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "opioid overdose treatment drugs", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 40141382, + "CONCEPT_NAME" : "naloxone Prefilled Syringe", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "727348", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 35603851, + "CONCEPT_NAME" : "naloxone Nasal Spray", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1725058", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40063501, + "CONCEPT_NAME" : "naloxone Injectable Solution", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "372989", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46275783, + "CONCEPT_NAME" : "naloxone Cartridge", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1659913", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46275793, + "CONCEPT_NAME" : "naloxone Injection", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1659928", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 46275772, + "CONCEPT_NAME" : "naloxone Auto-Injector", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1659888", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 19014158, + "CONCEPT_NAME" : "nalmefene", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "31479", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 40166388, + "CONCEPT_NAME" : "morphine / naltrexone Extended Release Oral Capsule", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "863844", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Clinical Drug Form" + }, + "isExcluded" : true, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + }, + { + "id" : 1, + "name" : "opioid overdose condition", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 606805, + "CONCEPT_NAME" : "Poisoning caused by opioid receptor agonist", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1148649003", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 7 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1425.json b/inst/cohorts/1425.json new file mode 100644 index 00000000..6af8ff4c --- /dev/null +++ b/inst/cohorts/1425.json @@ -0,0 +1,83 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "alcohol acute intoxication", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 37165681, + "CONCEPT_NAME" : "Accidental poisoning by substance with alcohol structure", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1255412009", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 37208159, + "CONCEPT_NAME" : "Intentional poisoning by ethyl alcohol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "461171000124100", + "DOMAIN_ID" : "Condition", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Disorder" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 1 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 7 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1426.json b/inst/cohorts/1426.json new file mode 100644 index 00000000..ba73452e --- /dev/null +++ b/inst/cohorts/1426.json @@ -0,0 +1,429 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "ConditionOccurrence" : { + "CodesetId" : 0, + "ConditionTypeExclude" : false + } + }, + { + "Observation" : { + "CodesetId" : 0, + "ObservationTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "psychoactive substances", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 4205848, + "CONCEPT_NAME" : "Alcoholic beverage", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "53527002", + "DOMAIN_ID" : "Observation", + "VOCABULARY_ID" : "SNOMED", + "CONCEPT_CLASS_ID" : "Substance" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21603244, + "CONCEPT_NAME" : "cocaine; local oral", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "R02AD03", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 5th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36854582, + "CONCEPT_NAME" : "LYSERGIDE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5172198", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604752, + "CONCEPT_NAME" : "PSYCHOSTIMULANTS, AGENTS USED FOR ADHD AND NOOTROPICS", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N06B", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 3rd" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36855591, + "CONCEPT_NAME" : "2-BROMOMESCALINE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5173208", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604787, + "CONCEPT_NAME" : "PSYCHOLEPTICS AND PSYCHOANALEPTICS IN COMBINATION", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N06C", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 3rd" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604390, + "CONCEPT_NAME" : "ANTIEPILEPTICS", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N03A", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 3rd" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36859280, + "CONCEPT_NAME" : ".ALPHA.-ETHYL MESCALINE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5176897", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604200, + "CONCEPT_NAME" : "Opioid anesthetics", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N01AH", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 4th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36863385, + "CONCEPT_NAME" : "ISOMESCALINE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5181002", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604686, + "CONCEPT_NAME" : "ANTIDEPRESSANTS", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N06A", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 3rd" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604247, + "CONCEPT_NAME" : "cocaine; parenteral", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N01BC01", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 5th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604489, + "CONCEPT_NAME" : "PSYCHOLEPTICS", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N05", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 2nd" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36856603, + "CONCEPT_NAME" : "CYCLOPROPYLMESCALINE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5174219", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604198, + "CONCEPT_NAME" : "Barbiturates in combination with other drugs", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N01AG", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 4th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604254, + "CONCEPT_NAME" : "OPIOIDS", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N02A", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 3rd" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 955372, + "CONCEPT_NAME" : "ethanol", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "448", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604363, + "CONCEPT_NAME" : "cannabinoids; oral", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N02BG10", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 5th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36861112, + "CONCEPT_NAME" : "MESCALINE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5178729", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 36858409, + "CONCEPT_NAME" : "PHENCYCLIDINE", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "OMOP5176026", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm Extension", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : false, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 21604194, + "CONCEPT_NAME" : "Barbiturates, plain", + "STANDARD_CONCEPT" : "C", + "STANDARD_CONCEPT_CAPTION" : "Classification", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "N01AF", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "ATC", + "CONCEPT_CLASS_ID" : "ATC 4th" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + }, + { + "concept" : { + "CONCEPT_ID" : 718583, + "CONCEPT_NAME" : "nicotine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "7407", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "DateOffset" : { + "DateField" : "EndDate", + "Offset" : 7 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 180 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1427.json b/inst/cohorts/1427.json new file mode 100644 index 00000000..182ddc06 --- /dev/null +++ b/inst/cohorts/1427.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 0, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "acamprosate", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 19043959, + "CONCEPT_NAME" : "acamprosate", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "82819", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 0, + "GapDays" : 1, + "Offset" : 30 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1428.json b/inst/cohorts/1428.json new file mode 100644 index 00000000..76412e3c --- /dev/null +++ b/inst/cohorts/1428.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 0, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 0, + "name" : "disulfiram", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 735850, + "CONCEPT_NAME" : "disulfiram", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "3554", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 0, + "GapDays" : 1, + "Offset" : 30 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/cohorts/1429.json b/inst/cohorts/1429.json new file mode 100644 index 00000000..18e0565e --- /dev/null +++ b/inst/cohorts/1429.json @@ -0,0 +1,67 @@ +{ + "cdmVersionRange" : ">=5.0.0", + "PrimaryCriteria" : { + "CriteriaList" : [ + { + "DrugExposure" : { + "CodesetId" : 1, + "DrugTypeExclude" : false + } + } + ], + "ObservationWindow" : { + "PriorDays" : 0, + "PostDays" : 0 + }, + "PrimaryCriteriaLimit" : { + "Type" : "All" + } + }, + "ConceptSets" : [ + { + "id" : 1, + "name" : "buprenorphine", + "expression" : { + "items" : [ + { + "concept" : { + "CONCEPT_ID" : 1133201, + "CONCEPT_NAME" : "buprenorphine", + "STANDARD_CONCEPT" : "S", + "STANDARD_CONCEPT_CAPTION" : "Standard", + "INVALID_REASON" : "V", + "INVALID_REASON_CAPTION" : "Valid", + "CONCEPT_CODE" : "1819", + "DOMAIN_ID" : "Drug", + "VOCABULARY_ID" : "RxNorm", + "CONCEPT_CLASS_ID" : "Ingredient" + }, + "isExcluded" : false, + "includeDescendants" : true, + "includeMapped" : false + } + ] + } + } + ], + "QualifiedLimit" : { + "Type" : "First" + }, + "ExpressionLimit" : { + "Type" : "All" + }, + "InclusionRules" : [], + "EndStrategy" : { + "CustomEra" : { + "DrugCodesetId" : 1, + "GapDays" : 0, + "Offset" : 30 + } + }, + "CensoringCriteria" : [], + "CollapseSettings" : { + "CollapseType" : "ERA", + "EraPad" : 0 + }, + "CensorWindow" : {} +} \ No newline at end of file diff --git a/inst/sql/sql_server/1387.sql b/inst/sql/sql_server/1387.sql new file mode 100644 index 00000000..08863ad1 --- /dev/null +++ b/inst/sql/sql_server/1387.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (1103640)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (1103640)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1388.sql b/inst/sql/sql_server/1388.sql new file mode 100644 index 00000000..90bf512a --- /dev/null +++ b/inst/sql/sql_server/1388.sql @@ -0,0 +1,301 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 2 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (38004241)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Visit Occurrence Criteria +select C.person_id, C.visit_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select vo.person_id,vo.visit_occurrence_id,vo.visit_concept_id,vo.visit_start_date as start_date, vo.visit_end_date as end_date + FROM @cdm_database_schema.VISIT_OCCURRENCE vo +JOIN #Codesets cs on (vo.visit_concept_id = cs.concept_id and cs.codeset_id = 2) +) C + + +-- End Visit Occurrence Criteria + +UNION ALL +-- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 2) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 90, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,90,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1389.sql b/inst/sql/sql_server/1389.sql new file mode 100644 index 00000000..e88880e1 --- /dev/null +++ b/inst/sql/sql_server/1389.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (21604824)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (21604824)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1390.sql b/inst/sql/sql_server/1390.sql new file mode 100644 index 00000000..91ac89bc --- /dev/null +++ b/inst/sql/sql_server/1390.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 2 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (44804691)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (44804691)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 2) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 180, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,180,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1391.sql b/inst/sql/sql_server/1391.sql new file mode 100644 index 00000000..924d332e --- /dev/null +++ b/inst/sql/sql_server/1391.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (21604825)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (21604825)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1392.sql b/inst/sql/sql_server/1392.sql new file mode 100644 index 00000000..e3acaffd --- /dev/null +++ b/inst/sql/sql_server/1392.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (1114220,1714319,19014158,909841)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (1114220,1714319,19014158,909841)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1393.sql b/inst/sql/sql_server/1393.sql new file mode 100644 index 00000000..35a14b15 --- /dev/null +++ b/inst/sql/sql_server/1393.sql @@ -0,0 +1,301 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (40217336,40217335,40217334,40217338,40217337,40217333,40217339,40217332,40217331,40217326,40217332)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Procedure Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 90, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,90,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1394.sql b/inst/sql/sql_server/1394.sql new file mode 100644 index 00000000..b2483f09 --- /dev/null +++ b/inst/sql/sql_server/1394.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (21604818)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (21604818)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1395.sql b/inst/sql/sql_server/1395.sql new file mode 100644 index 00000000..b2483f09 --- /dev/null +++ b/inst/sql/sql_server/1395.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (21604818)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (21604818)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1396.sql b/inst/sql/sql_server/1396.sql new file mode 100644 index 00000000..08e1211a --- /dev/null +++ b/inst/sql/sql_server/1396.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (780442)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (780442)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 90),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1397.sql b/inst/sql/sql_server/1397.sql new file mode 100644 index 00000000..56525be4 --- /dev/null +++ b/inst/sql/sql_server/1397.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4083171)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4083171)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 180, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,180,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1398.sql b/inst/sql/sql_server/1398.sql new file mode 100644 index 00000000..5718eeea --- /dev/null +++ b/inst/sql/sql_server/1398.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4082728,4176643,2514512,2514513)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4082728,4176643)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1399.sql b/inst/sql/sql_server/1399.sql new file mode 100644 index 00000000..7ec27bd0 --- /dev/null +++ b/inst/sql/sql_server/1399.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4211325)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4211325)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 90, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,90,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1400.sql b/inst/sql/sql_server/1400.sql new file mode 100644 index 00000000..37400862 --- /dev/null +++ b/inst/sql/sql_server/1400.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (46272634)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (46272634)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 180, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,180,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1401.sql b/inst/sql/sql_server/1401.sql new file mode 100644 index 00000000..1c27ccfc --- /dev/null +++ b/inst/sql/sql_server/1401.sql @@ -0,0 +1,317 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (2795873,2795886,4297063,4210149,4043203,1552629,4327941,2795900)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (2795873,2795886,4210149,4043203,4327941,2795900)) + +) I +LEFT JOIN +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (37155220,40664776,4084199,4079606,4296253,4117916,3657567,4272803,44811077,37209052,37155031,37154898,4079611)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (37155220,40664776,4084199,4079606,4296253,4117916,3657567,4272803,44811077,37209052,37155031,37154898)) + +) E ON I.concept_id = E.concept_id +WHERE E.concept_id is null +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1402.sql b/inst/sql/sql_server/1402.sql new file mode 100644 index 00000000..040330bf --- /dev/null +++ b/inst/sql/sql_server/1402.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (2795873,4079501,1552629,2213548,4296166)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (2795873,4296166)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1403.sql b/inst/sql/sql_server/1403.sql new file mode 100644 index 00000000..529ccfb4 --- /dev/null +++ b/inst/sql/sql_server/1403.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4297063,4210149,2795900,4028920)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4210149,2795900,4028920)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 90, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,90,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1404.sql b/inst/sql/sql_server/1404.sql new file mode 100644 index 00000000..b910d239 --- /dev/null +++ b/inst/sql/sql_server/1404.sql @@ -0,0 +1,303 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4040976)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4040976)) + +) I +LEFT JOIN +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (44811077,37209052,37155031,37154898)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (44811077,37209052,37155031,37154898)) + +) E ON I.concept_id = E.concept_id +WHERE E.concept_id is null +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 365, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,365,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1405.sql b/inst/sql/sql_server/1405.sql new file mode 100644 index 00000000..b910d239 --- /dev/null +++ b/inst/sql/sql_server/1405.sql @@ -0,0 +1,303 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4040976)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4040976)) + +) I +LEFT JOIN +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (44811077,37209052,37155031,37154898)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (44811077,37209052,37155031,37154898)) + +) E ON I.concept_id = E.concept_id +WHERE E.concept_id is null +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 365, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,365,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1406.sql b/inst/sql/sql_server/1406.sql new file mode 100644 index 00000000..63b24967 --- /dev/null +++ b/inst/sql/sql_server/1406.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (44792681,44809825,37209005,37209000,4174714,46272515,4135675,44791051,4243827,4175010,3661916,37209004,37209003,37209002,37209001,40217334,40217326,40217331,40217332,40217333,40217335,40217336,40217337,40217338,40217339,44804161,4273851)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4174714,4135675,44791051,4243827,44804161,4273851)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 365, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,365,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1407.sql b/inst/sql/sql_server/1407.sql new file mode 100644 index 00000000..ea5f1502 --- /dev/null +++ b/inst/sql/sql_server/1407.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (38004257,38004274,8974,8957)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (8974,8957)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Visit Occurrence Criteria +select C.person_id, C.visit_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select vo.person_id,vo.visit_occurrence_id,vo.visit_concept_id,vo.visit_start_date as start_date, vo.visit_end_date as end_date + FROM @cdm_database_schema.VISIT_OCCURRENCE vo +JOIN #Codesets cs on (vo.visit_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Visit Occurrence Criteria + +UNION ALL +-- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1408.sql b/inst/sql/sql_server/1408.sql new file mode 100644 index 00000000..f29429a6 --- /dev/null +++ b/inst/sql/sql_server/1408.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (2514536,915726,4062656,2514537,801323,801324,915727)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4062656)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + +UNION ALL +-- Begin Measurement Criteria +select C.person_id, C.measurement_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select m.person_id,m.measurement_id,m.measurement_concept_id,m.visit_occurrence_id,m.value_as_number,m.range_high,m.range_low,m.measurement_date as start_date, DATEADD(day,1,m.measurement_date) as end_date + FROM @cdm_database_schema.MEASUREMENT m +JOIN #Codesets cs on (m.measurement_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Measurement Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 1, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,1,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1409.sql b/inst/sql/sql_server/1409.sql new file mode 100644 index 00000000..cf93c53b --- /dev/null +++ b/inst/sql/sql_server/1409.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4158091)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4158091)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Measurement Criteria +select C.person_id, C.measurement_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select m.person_id,m.measurement_id,m.measurement_concept_id,m.visit_occurrence_id,m.value_as_number,m.range_high,m.range_low,m.measurement_date as start_date, DATEADD(day,1,m.measurement_date) as end_date + FROM @cdm_database_schema.MEASUREMENT m +JOIN #Codesets cs on (m.measurement_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Measurement Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 1, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,1,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1410.sql b/inst/sql/sql_server/1410.sql new file mode 100644 index 00000000..54e65af3 --- /dev/null +++ b/inst/sql/sql_server/1410.sql @@ -0,0 +1,320 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (37208717,37310702,4169338,4157230,4159408,37208713,4159696,4165123,4158756,44792141,42536965,3655567,46234680,4159568,46234681,42536966,3657588,37208715,37208712,37208716,4164813,4167760,37208714,37208560,44792142,36674484,4165448,2514536,2514537,2617464,2617465,40664833,40664725)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4157230,4165123,36674484)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Measurement Criteria +select C.person_id, C.measurement_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select m.person_id,m.measurement_id,m.measurement_concept_id,m.visit_occurrence_id,m.value_as_number,m.range_high,m.range_low,m.measurement_date as start_date, DATEADD(day,1,m.measurement_date) as end_date + FROM @cdm_database_schema.MEASUREMENT m +JOIN #Codesets cs on (m.measurement_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Measurement Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + +UNION ALL +-- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 1, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,1,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1411.sql b/inst/sql/sql_server/1411.sql new file mode 100644 index 00000000..1ee2bfaa --- /dev/null +++ b/inst/sql/sql_server/1411.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (40772940,37078900,3032575,4326820,3026040,40481408,21494866,3028841,3015906,40655173,40766846,37049368,37071236,21494867,4280954,4096080,43533688,46257673,1247077,43533687,4255267,43533448,37062255,37045698,43534383,3022432,4021313,3034429,21492624,43533447,40655612,3045233,46284938,4006367,4104671,43534240,40771543,3034963,37169494,1001641,3001241,40766847,37169917,37024054,43533556,3042517,37041970,40655546,3013169,4324133,44806422,42529009,43534382,4269834,3006476,4221377,40771548,43533555,3034789,3033472,37039135,4260399,40766849,4211848,1616297,37025133,3013362,37169029,36713684,37173225,37077798,3004555,4273557,40656638,3037571,44806443,37060400,43534147,40655611,3019270,3000684,44812145,37046785,37022969,43534239,3015840,3021426,3009354,37048890,3002874,1175388,37027040,1988963,3043690,43534148,46257559,3032544,3003644,37043740,3000074,4021452,21494870,40766842,4091463,3039447,37073815,37169036,40772939,4021450,40655174,37032910,1616954,40653859,3050636,4203316,37077184,4020273,43533385,37033562,37155997,44806229,37055737)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (40772940,37078900,4326820,40481408,40655173,37049368,37071236,4280954,4096080,46257673,1247077,4255267,37062255,37045698,4021313,40655612,46284938,4006367,4104671,37169494,37169917,37024054,37041970,40655546,4324133,44806422,4269834,4221377,37039135,4260399,4211848,37025133,37169029,36713684,37173225,37077798,4273557,40656638,44806443,37060400,40655611,44812145,37046785,37022969,37048890,37027040,46257559,37043740,4021452,4091463,37073815,37169036,40772939,4021450,40655174,37032910,40653859,4203316,37077184,4020273,37033562,37155997,44806229,37055737)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Measurement Criteria +select C.person_id, C.measurement_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select m.person_id,m.measurement_id,m.measurement_concept_id,m.visit_occurrence_id,m.value_as_number,m.range_high,m.range_low,m.measurement_date as start_date, DATEADD(day,1,m.measurement_date) as end_date + FROM @cdm_database_schema.MEASUREMENT m +JOIN #Codesets cs on (m.measurement_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Measurement Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,0,end_date) > op_end_date then op_end_date else DATEADD(day,0,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 1, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,1,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1412.sql b/inst/sql/sql_server/1412.sql new file mode 100644 index 00000000..c0b5efce --- /dev/null +++ b/inst/sql/sql_server/1412.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (1114220)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (1114220)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 1, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(1 + 1),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1413.sql b/inst/sql/sql_server/1413.sql new file mode 100644 index 00000000..6e55175c --- /dev/null +++ b/inst/sql/sql_server/1413.sql @@ -0,0 +1,301 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (2514536,2514537,2617464,2617465,40664833,40664725)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Observation Criteria + +UNION ALL +-- Begin Procedure Occurrence Criteria +select C.person_id, C.procedure_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select po.person_id,po.procedure_occurrence_id,po.procedure_concept_id,po.visit_occurrence_id,po.quantity,po.procedure_date as start_date, DATEADD(day,1,po.procedure_date) as end_date + FROM @cdm_database_schema.PROCEDURE_OCCURRENCE po +JOIN #Codesets cs on (po.procedure_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Procedure Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,1,end_date) > op_end_date then op_end_date else DATEADD(day,1,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1415.sql b/inst/sql/sql_server/1415.sql new file mode 100644 index 00000000..bc7ce428 --- /dev/null +++ b/inst/sql/sql_server/1415.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4027643,4215819)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4027643,4215819)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,180,end_date) > op_end_date then op_end_date else DATEADD(day,180,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1416.sql b/inst/sql/sql_server/1416.sql new file mode 100644 index 00000000..20e5b9f3 --- /dev/null +++ b/inst/sql/sql_server/1416.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4313342,37164784,37164787,4042878,4036418,4038713)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4042878,4036418,4038713)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,14,end_date) > op_end_date then op_end_date else DATEADD(day,14,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1417.sql b/inst/sql/sql_server/1417.sql new file mode 100644 index 00000000..d59a509d --- /dev/null +++ b/inst/sql/sql_server/1417.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4226563,4229859,4038703,4042885,4027647)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4229859)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,1,end_date) > op_end_date then op_end_date else DATEADD(day,1,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1418.sql b/inst/sql/sql_server/1418.sql new file mode 100644 index 00000000..196b5456 --- /dev/null +++ b/inst/sql/sql_server/1418.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4038700,45769951,37109199,4038701,4042884,4038702,4027646,37116662)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4038700,45769951,4038701)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,90,end_date) > op_end_date then op_end_date else DATEADD(day,90,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1419.sql b/inst/sql/sql_server/1419.sql new file mode 100644 index 00000000..9b4ccfc9 --- /dev/null +++ b/inst/sql/sql_server/1419.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (35610540,35610541,35610542,35610524,35610545,35610537,44788726,35610544,37205764,35610534,36676296,35610533,36676297,35610532,35610538,35610543,35610536,37110444)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (37205764)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + +UNION ALL +-- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,30,end_date) > op_end_date then op_end_date else DATEADD(day,30,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1420.sql b/inst/sql/sql_server/1420.sql new file mode 100644 index 00000000..4a314917 --- /dev/null +++ b/inst/sql/sql_server/1420.sql @@ -0,0 +1,303 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (378143,374009,434889,4133611,444100,442077,439706,30361,436073)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (378143,374009,434889,4133611,444100,442077,439706,30361,436073)) + +) I +LEFT JOIN +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (35609901,434900)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (35609901,434900)) + +) E ON I.concept_id = E.concept_id +WHERE E.concept_id is null +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,14,end_date) > op_end_date then op_end_date else DATEADD(day,14,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1421.sql b/inst/sql/sql_server/1421.sql new file mode 100644 index 00000000..064b15c5 --- /dev/null +++ b/inst/sql/sql_server/1421.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (30361)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (30361)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,1,end_date) > op_end_date then op_end_date else DATEADD(day,1,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 7, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,7,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1422.sql b/inst/sql/sql_server/1422.sql new file mode 100644 index 00000000..1a9cbf57 --- /dev/null +++ b/inst/sql/sql_server/1422.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (381316)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (381316)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,7,end_date) > op_end_date then op_end_date else DATEADD(day,7,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 30, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,30,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1423.sql b/inst/sql/sql_server/1423.sql new file mode 100644 index 00000000..fdff65a1 --- /dev/null +++ b/inst/sql/sql_server/1423.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (607209,3178217,1245119)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (607209,3178217,1245119)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Condition Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,1,end_date) > op_end_date then op_end_date else DATEADD(day,1,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 7, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,7,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1424.sql b/inst/sql/sql_server/1424.sql new file mode 100644 index 00000000..380fef01 --- /dev/null +++ b/inst/sql/sql_server/1424.sql @@ -0,0 +1,328 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (40141382,35603851,40063501,46275783,46275793,46275772,19014158)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (40141382,35603851,40063501,46275783,46275793,46275772,19014158)) + +) I +LEFT JOIN +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (40166388)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (40166388)) + +) E ON I.concept_id = E.concept_id +WHERE E.concept_id is null +) C UNION ALL +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (606805)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (606805)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Condition Occurrence Criteria + +UNION ALL +-- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,1,end_date) > op_end_date then op_end_date else DATEADD(day,1,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 7, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,7,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1425.sql b/inst/sql/sql_server/1425.sql new file mode 100644 index 00000000..d37bd305 --- /dev/null +++ b/inst/sql/sql_server/1425.sql @@ -0,0 +1,292 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (37165681,37208159)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (37165681,37208159)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,1,end_date) > op_end_date then op_end_date else DATEADD(day,1,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 7, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,7,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1426.sql b/inst/sql/sql_server/1426.sql new file mode 100644 index 00000000..a97969ce --- /dev/null +++ b/inst/sql/sql_server/1426.sql @@ -0,0 +1,306 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (4205848,21603244,36854582,21604752,36855591,21604787,21604390,36859280,21604200,36863385,21604686,21604247,21604489,36856603,21604198,21604254,955372,21604363,36861112,36858409,21604194,718583)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (4205848,21603244,21604752,21604787,21604390,21604200,21604686,21604247,21604489,21604198,21604254,955372,21604363,21604194,718583)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Condition Occurrence Criteria +SELECT C.person_id, C.condition_occurrence_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id, C.start_date as sort_date +FROM +( + SELECT co.person_id,co.condition_occurrence_id,co.condition_concept_id,co.visit_occurrence_id,co.condition_start_date as start_date, COALESCE(co.condition_end_date, DATEADD(day,1,co.condition_start_date)) as end_date + FROM @cdm_database_schema.CONDITION_OCCURRENCE co + JOIN #Codesets cs on (co.condition_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Condition Occurrence Criteria + +UNION ALL +-- Begin Observation Criteria +select C.person_id, C.observation_id as event_id, C.start_date, C.END_DATE, + C.visit_occurrence_id, C.start_date as sort_date +from +( + select o.person_id,o.observation_id,o.observation_concept_id,o.visit_occurrence_id,o.value_as_number,o.observation_date as start_date, DATEADD(day,1,o.observation_date) as end_date + FROM @cdm_database_schema.OBSERVATION o +JOIN #Codesets cs on (o.observation_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Observation Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- date offset strategy + +select event_id, person_id, + case when DATEADD(day,7,end_date) > op_end_date then op_end_date else DATEADD(day,7,end_date) end as end_date +INTO #strategy_ends +from #included_events; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 180, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,180,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1427.sql b/inst/sql/sql_server/1427.sql new file mode 100644 index 00000000..f8dacd24 --- /dev/null +++ b/inst/sql/sql_server/1427.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (19043959)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (19043959)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 0 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 0 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 1, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(1 + 30),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1428.sql b/inst/sql/sql_server/1428.sql new file mode 100644 index 00000000..b22d5ad3 --- /dev/null +++ b/inst/sql/sql_server/1428.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 0 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (735850)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (735850)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 0) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 0 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 0 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 1, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(1 + 30),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; diff --git a/inst/sql/sql_server/1429.sql b/inst/sql/sql_server/1429.sql new file mode 100644 index 00000000..0d2869cb --- /dev/null +++ b/inst/sql/sql_server/1429.sql @@ -0,0 +1,336 @@ +CREATE TABLE #Codesets ( + codeset_id int NOT NULL, + concept_id bigint NOT NULL +) +; + +INSERT INTO #Codesets (codeset_id, concept_id) +SELECT 1 as codeset_id, c.concept_id FROM (select distinct I.concept_id FROM +( + select concept_id from @vocabulary_database_schema.CONCEPT where (concept_id in (1133201)) +UNION select c.concept_id + from @vocabulary_database_schema.CONCEPT c + join @vocabulary_database_schema.CONCEPT_ANCESTOR ca on c.concept_id = ca.descendant_concept_id + WHERE c.invalid_reason is null + and (ca.ancestor_concept_id in (1133201)) + +) I +) C; + +UPDATE STATISTICS #Codesets; + + +SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, visit_occurrence_id +INTO #qualified_events +FROM +( + select pe.event_id, pe.person_id, pe.start_date, pe.end_date, pe.op_start_date, pe.op_end_date, row_number() over (partition by pe.person_id order by pe.start_date ASC) as ordinal, cast(pe.visit_occurrence_id as bigint) as visit_occurrence_id + FROM (-- Begin Primary Events +select P.ordinal as event_id, P.person_id, P.start_date, P.end_date, op_start_date, op_end_date, cast(P.visit_occurrence_id as bigint) as visit_occurrence_id +FROM +( + select E.person_id, E.start_date, E.end_date, + row_number() OVER (PARTITION BY E.person_id ORDER BY E.sort_date ASC, E.event_id) ordinal, + OP.observation_period_start_date as op_start_date, OP.observation_period_end_date as op_end_date, cast(E.visit_occurrence_id as bigint) as visit_occurrence_id + FROM + ( + -- Begin Drug Exposure Criteria +select C.person_id, C.drug_exposure_id as event_id, C.start_date, C.end_date, + C.visit_occurrence_id,C.start_date as sort_date +from +( + select de.person_id,de.drug_exposure_id,de.drug_concept_id,de.visit_occurrence_id,days_supply,quantity,refills,de.drug_exposure_start_date as start_date, COALESCE(de.drug_exposure_end_date, DATEADD(day,de.days_supply,de.drug_exposure_start_date), DATEADD(day,1,de.drug_exposure_start_date)) as end_date + FROM @cdm_database_schema.DRUG_EXPOSURE de +JOIN #Codesets cs on (de.drug_concept_id = cs.concept_id and cs.codeset_id = 1) +) C + + +-- End Drug Exposure Criteria + + ) E + JOIN @cdm_database_schema.observation_period OP on E.person_id = OP.person_id and E.start_date >= OP.observation_period_start_date and E.start_date <= op.observation_period_end_date + WHERE DATEADD(day,0,OP.OBSERVATION_PERIOD_START_DATE) <= E.START_DATE AND DATEADD(day,0,E.START_DATE) <= OP.OBSERVATION_PERIOD_END_DATE +) P + +-- End Primary Events +) pe + +) QE + +; + +--- Inclusion Rule Inserts + +create table #inclusion_events (inclusion_rule_id bigint, + person_id bigint, + event_id bigint +); + +select event_id, person_id, start_date, end_date, op_start_date, op_end_date +into #included_events +FROM ( + SELECT event_id, person_id, start_date, end_date, op_start_date, op_end_date, row_number() over (partition by person_id order by start_date ASC) as ordinal + from + ( + select Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date, SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on I.person_id = Q.person_id and I.event_id = Q.event_id + GROUP BY Q.event_id, Q.person_id, Q.start_date, Q.end_date, Q.op_start_date, Q.op_end_date + ) MG -- matching groups +{0 != 0}?{ + -- the matching group with all bits set ( POWER(2,# of inclusion rules) - 1 = inclusion_rule_mask + WHERE (MG.inclusion_rule_mask = POWER(cast(2 as bigint),0)-1) +} +) Results + +; + +-- custom era strategy + +with ctePersons(person_id) as ( + select distinct person_id from #included_events +) + +select person_id, drug_exposure_start_date, drug_exposure_end_date +INTO #drugTarget +FROM ( + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_concept_id = cs.concept_id + + UNION ALL + + select de.PERSON_ID, DRUG_EXPOSURE_START_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE + FROM @cdm_database_schema.DRUG_EXPOSURE de + JOIN ctePersons p on de.person_id = p.person_id + JOIN #Codesets cs on cs.codeset_id = 1 AND de.drug_source_concept_id = cs.concept_id +) E +; + +select et.event_id, et.person_id, ERAS.era_end_date as end_date +INTO #strategy_ends +from #included_events et +JOIN +( + + select person_id, min(start_date) as era_start_date, DATEADD(day,-1 * 0, max(end_date)) as era_end_date + from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, drug_exposure_start_date as start_date, DATEADD(day,(0 + 30),DRUG_EXPOSURE_END_DATE) as end_date + FROM #drugTarget + ) DT + ) ST + ) GR + group by person_id, group_idx +) ERAS on ERAS.person_id = et.person_id +WHERE et.start_date between ERAS.era_start_date and ERAS.era_end_date; + +TRUNCATE TABLE #drugTarget; +DROP TABLE #drugTarget; + + +-- generate cohort periods into #final_cohort +select person_id, start_date, end_date +INTO #cohort_rows +from ( -- first_ends + select F.person_id, F.start_date, F.end_date + FROM ( + select I.event_id, I.person_id, I.start_date, CE.end_date, row_number() over (partition by I.person_id, I.event_id order by CE.end_date) as ordinal + from #included_events I + join ( -- cohort_ends +-- cohort exit dates +-- By default, cohort exit at the event's op end date +select event_id, person_id, op_end_date as end_date from #included_events +UNION ALL +-- End Date Strategy +SELECT event_id, person_id, end_date from #strategy_ends + + ) CE on I.event_id = CE.event_id and I.person_id = CE.person_id and CE.end_date >= I.start_date + ) F + WHERE F.ordinal = 1 +) FE; + + +select person_id, min(start_date) as start_date, DATEADD(day,-1 * 0, max(end_date)) as end_date +into #final_cohort +from ( + select person_id, start_date, end_date, sum(is_start) over (partition by person_id order by start_date, is_start desc rows unbounded preceding) group_idx + from ( + select person_id, start_date, end_date, + case when max(end_date) over (partition by person_id order by start_date rows between unbounded preceding and 1 preceding) >= start_date then 0 else 1 end is_start + from ( + select person_id, start_date, DATEADD(day,0,end_date) as end_date + from #cohort_rows + ) CR + ) ST +) GR +group by person_id, group_idx; + +DELETE FROM @target_database_schema.@target_cohort_table where cohort_definition_id = @target_cohort_id; +INSERT INTO @target_database_schema.@target_cohort_table (cohort_definition_id, subject_id, cohort_start_date, cohort_end_date) +select @target_cohort_id as cohort_definition_id, person_id, start_date, end_date +FROM #final_cohort CO +; + +{1 != 0}?{ +-- BEGIN: Censored Stats + +delete from @results_database_schema.cohort_censor_stats where cohort_definition_id = @target_cohort_id; + +-- END: Censored Stats +} +{1 != 0 & 0 != 0}?{ + +CREATE TABLE #inclusion_rules (rule_sequence int); + +-- Find the event that is the 'best match' per person. +-- the 'best match' is defined as the event that satisfies the most inclusion rules. +-- ties are solved by choosing the event that matches the earliest inclusion rule, and then earliest. + +select q.person_id, q.event_id +into #best_events +from #qualified_events Q +join ( + SELECT R.person_id, R.event_id, ROW_NUMBER() OVER (PARTITION BY R.person_id ORDER BY R.rule_count DESC,R.min_rule_id ASC, R.start_date ASC) AS rank_value + FROM ( + SELECT Q.person_id, Q.event_id, COALESCE(COUNT(DISTINCT I.inclusion_rule_id), 0) AS rule_count, COALESCE(MIN(I.inclusion_rule_id), 0) AS min_rule_id, Q.start_date + FROM #qualified_events Q + LEFT JOIN #inclusion_events I ON q.person_id = i.person_id AND q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id, Q.start_date + ) R +) ranked on Q.person_id = ranked.person_id and Q.event_id = ranked.event_id +WHERE ranked.rank_value = 1 +; + +-- modes of generation: (the same tables store the results for the different modes, identified by the mode_id column) +-- 0: all events +-- 1: best event + + +-- BEGIN: Inclusion Impact Analysis - event +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 0 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #qualified_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 0 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #qualified_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #qualified_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 0 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 0; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 0 as mode_id +FROM +(select count_big(event_id) as total from #qualified_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 0 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - event + +-- BEGIN: Inclusion Impact Analysis - person +-- calculte matching group counts +delete from @results_database_schema.cohort_inclusion_result where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_result (cohort_definition_id, inclusion_rule_mask, person_count, mode_id) +select @target_cohort_id as cohort_definition_id, inclusion_rule_mask, count_big(*) as person_count, 1 as mode_id +from +( + select Q.person_id, Q.event_id, CAST(SUM(coalesce(POWER(cast(2 as bigint), I.inclusion_rule_id), 0)) AS bigint) as inclusion_rule_mask + from #best_events Q + LEFT JOIN #inclusion_events I on q.person_id = i.person_id and q.event_id = i.event_id + GROUP BY Q.person_id, Q.event_id +) MG -- matching groups +group by inclusion_rule_mask +; + +-- calculate gain counts +delete from @results_database_schema.cohort_inclusion_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_inclusion_stats (cohort_definition_id, rule_sequence, person_count, gain_count, person_total, mode_id) +select @target_cohort_id as cohort_definition_id, ir.rule_sequence, coalesce(T.person_count, 0) as person_count, coalesce(SR.person_count, 0) gain_count, EventTotal.total, 1 as mode_id +from #inclusion_rules ir +left join +( + select i.inclusion_rule_id, count_big(i.event_id) as person_count + from #best_events Q + JOIN #inclusion_events i on Q.person_id = I.person_id and Q.event_id = i.event_id + group by i.inclusion_rule_id +) T on ir.rule_sequence = T.inclusion_rule_id +CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal +CROSS JOIN (select count_big(event_id) as total from #best_events) EventTotal +LEFT JOIN @results_database_schema.cohort_inclusion_result SR on SR.mode_id = 1 AND SR.cohort_definition_id = @target_cohort_id AND (POWER(cast(2 as bigint),RuleTotal.total_rules) - POWER(cast(2 as bigint),ir.rule_sequence) - 1) = SR.inclusion_rule_mask -- POWER(2,rule count) - POWER(2,rule sequence) - 1 is the mask for 'all except this rule' +; + +-- calculate totals +delete from @results_database_schema.cohort_summary_stats where cohort_definition_id = @target_cohort_id and mode_id = 1; +insert into @results_database_schema.cohort_summary_stats (cohort_definition_id, base_count, final_count, mode_id) +select @target_cohort_id as cohort_definition_id, PC.total as person_count, coalesce(FC.total, 0) as final_count, 1 as mode_id +FROM +(select count_big(event_id) as total from #best_events) PC, +(select sum(sr.person_count) as total + from @results_database_schema.cohort_inclusion_result sr + CROSS JOIN (select count(*) as total_rules from #inclusion_rules) RuleTotal + where sr.mode_id = 1 and sr.cohort_definition_id = @target_cohort_id and sr.inclusion_rule_mask = POWER(cast(2 as bigint),RuleTotal.total_rules)-1 +) FC +; + +-- END: Inclusion Impact Analysis - person + +TRUNCATE TABLE #best_events; +DROP TABLE #best_events; + +TRUNCATE TABLE #inclusion_rules; +DROP TABLE #inclusion_rules; +} + +TRUNCATE TABLE #strategy_ends; +DROP TABLE #strategy_ends; + + +TRUNCATE TABLE #cohort_rows; +DROP TABLE #cohort_rows; + +TRUNCATE TABLE #final_cohort; +DROP TABLE #final_cohort; + +TRUNCATE TABLE #inclusion_events; +DROP TABLE #inclusion_events; + +TRUNCATE TABLE #qualified_events; +DROP TABLE #qualified_events; + +TRUNCATE TABLE #included_events; +DROP TABLE #included_events; + +TRUNCATE TABLE #Codesets; +DROP TABLE #Codesets; From 799bb2101ee67e145a05905431bde565ade17980 Mon Sep 17 00:00:00 2001 From: Gowtham Rao Date: Wed, 2 Apr 2025 19:47:05 -0400 Subject: [PATCH 2/3] Release v3.36.0 --- docs/404.html | 2 +- ...ohortDefinitionSubmissionRequirements.html | 4 ++-- ...ortDefinitionsInOhdsiPhenotypeLibrary.html | 6 +++--- ...SetDefinitionsInOhdsiPhenotypeLibrary.html | 6 +++--- ...icalDescriptionForConditionPhenotypes.html | 4 ++-- .../GuidanceOnCohortDefinitionSetRObject.html | 4 ++-- docs/articles/index.html | 2 +- docs/authors.html | 6 +++--- docs/index.html | 2 +- docs/pkgdown.yml | 2 +- docs/reference/PhenotypeLibrary-package.html | 2 +- docs/reference/getPhenotypeLog.html | 2 +- docs/reference/getPlCohortDefinitionSet.html | 2 +- docs/reference/getPlConceptDefinitionSet.html | 2 +- docs/reference/index.html | 2 +- docs/reference/listPhenotypes.html | 6 +++--- inst/doc/HowToUsePhenotypeLibraryRPackage.pdf | Bin 197356 -> 197023 bytes 17 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/404.html b/docs/404.html index 708dc1c0..25a77701 100644 --- a/docs/404.html +++ b/docs/404.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/articles/CohortDefinitionSubmissionRequirements.html b/docs/articles/CohortDefinitionSubmissionRequirements.html index a4229bd8..69655fde 100644 --- a/docs/articles/CohortDefinitionSubmissionRequirements.html +++ b/docs/articles/CohortDefinitionSubmissionRequirements.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

Cohort Definition Submission Requirements

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/CohortDefinitionSubmissionRequirements.Rmd diff --git a/docs/articles/CohortDefinitionsInOhdsiPhenotypeLibrary.html b/docs/articles/CohortDefinitionsInOhdsiPhenotypeLibrary.html index 3e8ffce7..1da35eab 100644 --- a/docs/articles/CohortDefinitionsInOhdsiPhenotypeLibrary.html +++ b/docs/articles/CohortDefinitionsInOhdsiPhenotypeLibrary.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -123,7 +123,7 @@

Cohort Definitions in OHDSI Phenotype

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/CohortDefinitionsInOhdsiPhenotypeLibrary.Rmd @@ -151,7 +151,7 @@

2025-03-29

}); });
- + @@ -123,7 +123,7 @@

Concept Set Definitions in OHDSI Phenotype

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/ConceptSetDefinitionsInOhdsiPhenotypeLibrary.Rmd @@ -133,7 +133,7 @@

2025-03-29

- + @@ -121,7 +121,7 @@

Guidance on writing clinical description for

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/GuidanceOnClinicalDescriptionForConditionPhenotypes.Rmd diff --git a/docs/articles/GuidanceOnCohortDefinitionSetRObject.html b/docs/articles/GuidanceOnCohortDefinitionSetRObject.html index 4cfc270d..d0981e9b 100644 --- a/docs/articles/GuidanceOnCohortDefinitionSetRObject.html +++ b/docs/articles/GuidanceOnCohortDefinitionSetRObject.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

Guidance on Cohort Definition Set R Object

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/GuidanceOnCohortDefinitionSetRObject.Rmd diff --git a/docs/articles/index.html b/docs/articles/index.html index 0b4b0bba..2740effa 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/authors.html b/docs/authors.html index 22df6006..c04d0a84 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -112,13 +112,13 @@

Citation

Rao G (2025). PhenotypeLibrary: The OHDSI Phenotype Library. -R package version 3.35.0, https://github.com/OHDSI/PhenotypeLibrary, https://ohdsi.github.io/PhenotypeLibrary/. +R package version 3.36.0, https://github.com/OHDSI/PhenotypeLibrary, https://ohdsi.github.io/PhenotypeLibrary/.

@Manual{,
   title = {PhenotypeLibrary: The OHDSI Phenotype Library},
   author = {Gowtham Rao},
   year = {2025},
-  note = {R package version 3.35.0, https://github.com/OHDSI/PhenotypeLibrary},
+  note = {R package version 3.36.0, https://github.com/OHDSI/PhenotypeLibrary},
   url = {https://ohdsi.github.io/PhenotypeLibrary/},
 }
diff --git a/docs/index.html b/docs/index.html index bb5fad99..93113601 100644 --- a/docs/index.html +++ b/docs/index.html @@ -33,7 +33,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index ce065e5f..523bc476 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -15,4 +15,4 @@ articles: ReservedWordsWithSpecialMeaningToPhenotypers: ReservedWordsWithSpecialMeaningToPhenotypers.html SubmittedCohortDefinitions: SubmittedCohortDefinitions.html ValidityChecksForCohortDefinitions: ValidityChecksForCohortDefinitions.html -last_built: 2025-03-29T11:07Z +last_built: 2025-04-02T23:46Z diff --git a/docs/reference/PhenotypeLibrary-package.html b/docs/reference/PhenotypeLibrary-package.html index 8a0fd8dc..de71cd3b 100644 --- a/docs/reference/PhenotypeLibrary-package.html +++ b/docs/reference/PhenotypeLibrary-package.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/reference/getPhenotypeLog.html b/docs/reference/getPhenotypeLog.html index e5d1545f..0a5c94cc 100644 --- a/docs/reference/getPhenotypeLog.html +++ b/docs/reference/getPhenotypeLog.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/reference/getPlCohortDefinitionSet.html b/docs/reference/getPlCohortDefinitionSet.html index fae8b0cc..b2f8c6c0 100644 --- a/docs/reference/getPlCohortDefinitionSet.html +++ b/docs/reference/getPlCohortDefinitionSet.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/reference/getPlConceptDefinitionSet.html b/docs/reference/getPlConceptDefinitionSet.html index 3f5801e9..6367cba5 100644 --- a/docs/reference/getPlConceptDefinitionSet.html +++ b/docs/reference/getPlConceptDefinitionSet.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/reference/index.html b/docs/reference/index.html index 3dd50371..aff7377d 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 diff --git a/docs/reference/listPhenotypes.html b/docs/reference/listPhenotypes.html index 178c7a2e..61a03759 100644 --- a/docs/reference/listPhenotypes.html +++ b/docs/reference/listPhenotypes.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -115,7 +115,7 @@

Value

Examples

listPhenotypes()
 #> Warning: listPhenotypes is deprecated. use getPhenotypeLog
-#> # A tibble: 661 × 88
+#> # A tibble: 703 × 88
 #>    cohortId cohortName        cohortNameAtlas cohortNameFormatted cohortNameLong
 #>       <dbl> <chr>             <chr>           <chr>               <chr>         
 #>  1        3 Cough or Sputum   [P] Cough or S… Cough or Sputum     Cough or Sput…
@@ -128,7 +128,7 @@ 

Examples

#> 8 10 Nausea or Vomiti… [P] Nausea or … Nausea or Vomiting Nausea or Vom… #> 9 11 Malaise and or f… [P] Malaise an… Malaise and or fat… Malaise and o… #> 10 12 Rhinitis or comm… [P] Rhinitis o… Rhinitis or common… Rhinitis or c… -#> # ℹ 651 more rows +#> # ℹ 693 more rows #> # ℹ 83 more variables: librarian <chr>, status <chr>, addedVersion <chr>, #> # logicDescription <chr>, hashTag <chr>, isCirceJson <dbl>, #> # contributors <chr>, contributorOrcIds <chr>, diff --git a/inst/doc/HowToUsePhenotypeLibraryRPackage.pdf b/inst/doc/HowToUsePhenotypeLibraryRPackage.pdf index 2f79c9981eb4926b198a06ee7bd6af56eaa7ba1f..6e37437a5162e7e0c38b61a7ba57fe1c508c15bf 100644 GIT binary patch delta 29059 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 delta 29365 zcmV(zK<2-ngADA243H)PG?(G?0w{mYSKU+NHV}X3ukai%$wP!CS+dPAozmm@=-g2n z=)D{_9TA(@Qzy>Z4wM)E_O7J0WBUjYn(Oq%lGppa`&-GbGj&|&WXFAB{pD(B@0f=U z^$DZGbFOY3Dk4XL{KBsl?S4r)4y{ftOIYl3CGTpwGHXbc>e+ITc4Lh`5Wk1f8$&4l6*!-Yst16Dr z0$RGwv&{Bxxo{BSYd+>Tux`D!4P5?P$8^ zbKr-12?8IB*ty;L{jGmKwkL|Dt#Uw*ap*NJ5HdwP%d5D=d<5Vj;SwIMYfW@0W783= zrH%t`DX*)$zu)Num*`J~h46qdjlK>A^nnzX>(6OgCCi(B|FxYDxS0}Y?b;RCc|c|A;`_}b;(Jk>*?#;Qi#-B5^uN;OhZ&w3;l7?q|()hqBS ztl^;KoVa!W@BV)@90>r?u3Zl8Ql&T0qWktmN@_QM+a(Ch*$fAwz3!|O0hU|@!dYaQ z?c2GUL0b#oZxaryOm}pb>o_lFs;c7e#6RZqsikG6z^Oj{^earjYKeMO6vff!xG42$ zY?CKlZL!D=yxFgD#z<0>;?|+}`Er`rZC=>*aM)M4`Hs?s z%74z2sKnQccpjy=KR7?sLHfF#vdq%ryLet#1iJcAF6P=7pSKIvkWCGmHxp*_X7v1E z_hrw056wy|at!(kghb;!5>0k-Z?J)TgN-e?eY-){1-k89k<(a3YNAi^c3&eE)i&Yu zm>*wO@jT1+pmVxG1|()6zzLsKaZ!)gau(NSYA=5))lWlD;_;Pw*79wbhBan3$bgR- z2yu$#1y-g?id_E_nZ|75ee(MgRO8?GWHWiTP~*!DA`B38aF;bQ=W1E%LD4SA=X?ei zQhkV0;kU~B6z}7!)M(3VShm;d=NqIUtkZxOmQN~EX^Hhw^Qi0QE&R0id%Y*|_)0y` z^KDWu8J}J^ur-Tr1)B_J3F9QyeuO*YQiqS!4CWQn%9(8VR`WZeS&_6|8zY{_zNPI3B> zkQ@%@#+l)a>{v6)vECgxX8hs$;P@;gR$?ci8(P;>D{`%fIJVIwn>$tT5|Bb;Y-B{`ccWzB`z&E~vk z_kw5V`9mnPv|@jxlGRlk^SA5wpyZGcI|+gMElP*(-TH&jmZH`LevMh3wIc(^S&@1pYO=V1N2JZOS@lQ`UD_ zFN##ipA59$lC)8fSD=&ucDwZkkr2=D)BiuW!dP<#JOtjrIt= zHi?{8`4$P|5=D_N1RYZ;Sv3>as|D?I9K<^1>1CR4Q=#9O97_%yW~=SfYFBZ;m`;Js z8KXu1RF7+u=rQ%OoPU6`P0y>WSPJmzt7Xx5C9GnSrN!wD_}d3ovL093M7g2@0wz;I z@;1+z8q;FLnWPZ5J9P;Ab$B%4oq}!X_HmgOY`TIgyHA(KEa+#a5dABS-eVctwv`fh zISvw>vytG4Ym+FnhHhlXiMgaNE^#_%ytsWP@(Ao`>|YOKZ+}oP4~L%T4YIVt3H=6c zlSy3E6;%^|P;&%eqSOaWq^NmLzc`*>F_XI#h*gJfG>|o}(#6l_|Gc!8ZH4c{+LVEq4a9MP_K?|<9(PnNo4hA;wQf<~I`KEVUq z^?Jkx>zaSDxz82^#U`Dr92`C2wAR$!n}XM+07?+`rxWkcC!S5w2T375%);oVE*5DH6SMv$8pSJo9Y_Aldhsg4u`%AWQ?Api%;h#Lz3Vs zXX&h}1v5dQGQAqdZ?DF~QT=IX4ngH)-ZSN{WKj!!+Zyuf&o2Zry80*8zgJmaeu7F= zJ&kEKqZ)>&#^M_C=KH_~-_rA=4uwn3N=Qh}3xB*#p~DhS{bl4CU7h}QUj^VAgLuXu z^>Q}vsJ~dsWr=t0{CgGr=c>W?`0-?Xj#KFU4uKTKmDV8cXrN>wiIE(T)RwNN)j}r& zJ<~QL!5Z&Q!xmbH1u)lKjDUA?m#MP+3Kv*8(LPO)8Z>BB2^3*j7Ne$-4+PZilH=;F z-h%F`K@~EEmI#a+gu&oi3l3=Gj~@(zKz{(L1OT(+50ueVC&`hmKbZ2mL>$?Wc|X4R z*+$rzE<`ylntL;(wZ;I>>%Mq~;-#r9n~Q`6R-OLcMFL1S@i^_f#iOR&Emnra++d?l zK#ZBfcEPpR->_UOrz%zLhn~MaWbV`R?oJhSY9yuQLaNeurJPk)_{V2KY!Tn~e19k= zAP$GFZzoO!uUKp+P$g(hAyW|ok^f&o9~t*i67SU&xM6}_ftsK*Xa`}sZB;<6uSRR` z3{i1hJC|C~3a!TLs>Hd(jno{QLPuLG!`vFcQh*mhJEgLQqaPi0p8z{Q#v<_@ttfQ3 zHCGSO=eedS7vgnaARHghR3ZYD<$uJ^>hf6oMwifU_P?U%ARe*(FzWUkuH)NIko<#9 zhv!1m5ys5}P*qen#3xjytPuOQ9K->wNc&z+;JKKjf{u_GB!OpkATh)W3HNJ2@SD}B zU+-Q0hhs;m;^Ig0@NWNx7pRQ9){lx*m6tWDByk{41!=1qu`*jBiK+!Rr^(3 zw_$xD2c>Hhb>nPKp_JG!uAia;@cy4zRg2}cqejPMruh7Si77I84zjtOPwL0Wd98mi zc$qIUofql3>5zm_2>4|04}UVFwSub2y+0R1HjAOM*vN%zPjn+NTa>iT_d?1>vF!)p zzPf55%ntw$e053^+l!)SCVdh{aN6xUQuop6NfyRMws4=3n!;VV;2ySJ+~;S+-tfLp z;cfJNnQyrCLyR%J_tv)c+3P`NyC2E=b9obAFZ2m*M>7HCXhdG{Cqag^5axFQzO1ly zYW4JW-3jjQ?(S}-6bVj%;O<3>7k8&P#ofI?aVcJ0i#s1Z=e~OH-)}G=thw}=d#;@f zpe9$-WEMAfFa^pufLxf_S=a;sO3E4z_9h^94rUFYrK_C@7{I~8#>Rz6O)Uuqnz&dy zfTT=ZfC2zs7b}3Onaf-5TYm%_8$Tj7Ko$rBg5R9x08>wZGSJ0D%hM6a4xlsn%TRN0 zc40O(aei|HL6+7aApKj4q=Ta;*xJ&{QfB>dID-$~lfP)1<3#bRs)|A%J1juTrYO86|vwyr5)^v4rbO8U) zERvd9+OkXlDRC7oX#h}%2_UPjsrBcl77+9{za0ajLbcXt*`S7#R%2e2iJ zqupQgX<1o21Kb_Jwts-PS1`~H_!lv*AoDjmU95nA7x;5303~ZPAjlc`CrQTPZ>Rkm zm2XLJxXV8Wdn3Z-PffeO!vW4f;D5BSGI9PZS4mAx31Dwx4RQg3Oh9IDfi5O4uFimu ze_?OmKy%u^2Lu8nUBTc#J(U090{^qkKSq~uczd$WND!2>|%mcmVADTmZH=kxGNiB^~VT-==m({6n9V^&3wv4q#8#|1E4=kb^tO`~PrQ zScA+h{%~*Z>VL?p4YGD}1z_%F;7=mKB^0G$9p4>K#)KMnuV%O9Bi5Bx@i zueYOvBf!GM&Kc-yZ2^3HLG*SuaRUNez^*`F?|*mvr-jJQ3oy4fb9s~c+qxkBRb3ur z;Q-+O8-APQAFlrq0o`A#O8>T}<_;h`Pk=el0+Ch4!GGmV5_JE6HtoN9$++6tshHRU z>HZg|{~c&zZ*AxKpP~O1q6_>pEuD%3*xtnMzkJrtGS(hIb2V!hGpoO;{Tr8eF?rL! zILOit_;xIRLE3*-%I;0OZ}*S&pX&?2%+AaGU%oe4n%RPY&dvZXuD@KsHzNLP;y3pH z%nM+Z5`UMHQB`65-?I5DP8ww9U~Ubv1aNTk08GGO6Hi38H!W~*a|68D--K-r^!Q6G z09F=|gUeeAz|qyk7hvH4M*MT2Jlp_Q@juXC7B4%1Rra429|wR{+bNc3OoQ- zMu4CRf3!C4RLq)w}iKr?*A&u2VnIAg8%maC*5j)uAIMi ziS1wf|Ic0gm#ygncCZENTARPU5B*z+vWW}W+QX3TZ4ubt@VBpj{ATnY4XFRM!~d2o zA%EfE;myp&!2w|A;CnkZ&bM2Iot=Z%_djyY{=OFfTEaJ>{KNipCjo#!51<+1(!7J2 zV2Djh4K@R@2L4%jw^6Q^c3P@meQx%iSVUzwenhC!;(uc~IxN~j8OnGg{+Y zNdekphm!p5UH6|kCSEZvk}2MQZT*?|&b?@sy$Ks^hv~71PS`=TIMo5^@_LUQ8*S1n zzQi!|G5-_pm;$V0PZ!o+#Rn@)(X59bIA||e`Vqa1;*4gUBUsBOQd&9huyKb7pno?x zcs&S>7EpsZ?@)43<$1!AN(EVAva#JrUnKQ|hZy2H@P?B>%10DsE3ETTnl1HEZg?&m zdss&bsv`qo1=J(BiIwf9>p*&v4^17x2=aa0>+p10ajZC)OlmZ!r;M^2l9jo0R6{CG zrfK4uwD7LUA^C&}TY2ci4_dUqpMRKA%PP~a(B-HeJio&ry%-uYBu#h#EYowBk+1~X z=A!BuI&<)3-$H5n5y+ZpB#sz*@!~~`2uQJm2gALLFE{d2+fc&l1{@1KwIXvxNhXd&ry29o$}vB4G(^#|7klaW^m zV36G4bzZhRZ5hSVm8Z4`Ab(yg6Aq1&h5xwSdh`-x_nxw>#j>dk6|C>5f7Q2)NILih zaAGCK3O}&!9;)O}Z(2=67^lL7Ji(I~8rNeiPJB(A)Z%A*(5nXd8 zuVTZ1ex<1Gt3KrVR0lb~DS;0Yco7)!yU6Hdg)usfPH`5D?Ml>YhJT-wv()8Z4@_T^ zxW%p15Y3i9kB)LMEEGK+Czwx+|9;z`YZ?I%B(xmF^PI*X0;frpi;JCrY!UdB9H z7^XvTN2pH=E4c@z&wqC4y_?!rJQiQ53Z41+oadlMfmvx+Fr(f=_7H?0YyGC{DixRy zs`8=h5cmwkm-gTvObnLi!GoO?!g|`>H?BPLXWfWy!DUC^*KyJ7mLyVrs}Yc{RcH6u z#DcoGj&gCc`)&x}J?9qJ-i^Jt+v_E#Q199gQV0{E^+nzv2!A&ryh`;4L$6LG;=$03 zX`L^4W$<XR?7 zR&u7&XHhOmK%czSl}2R1eM)6lg-^vwVYfM5uaW=tFM8&;HpATwc++aJYU&SV++ImL+05 z;il}kL4S(QonxMpt#aR@RmToL+!wc<@2?eHo4{@}x0snEcjR+7SDh*`UPwY7V#Gn(pesb%n8ll?$w0tZTiXnt#2Sl zRRfl^lCcR>)unVBX~t!rt*mUsTUNw!i}kkX$bVJbHsE5US7l-{f!kW#FUYV%_xD3N zW2RV!zj0S1DJz*6`6nPd?qx&>V-kg)R>#2t2?L8nf}cNl&kSR4dT(H!U-rc!q%zy4 z_SMqQ9?r;n=(4D>BlJYXe?Z$6O2CHazZtv}tRh!*gHOQlg*JIY^|T;KCSXI|Wq zn17Bi6VFcewn7t0EHl6D9&@E$d&>NqtOLtM8otLS8Q&|^9OC3@1*iY@l*h0o?rM((2TLHc3rMPF~4vwvFq zP|q($SIO?`xP+JC)8Kru4o`m^y`G~Pdnx<)nleeGKLjCk$nX_{cAvojyd|N3;I{k7 z8TfdXV%pCn3A55+De5^+(n~~J{-AkP#bV03Qua8>!g_qG`{H|LjK8-vp6v7G0>7h4 zMi5t?Wsq)VcV-^Gq!Y<+3ub8I=zpZxKlmXQi=sFnMT(?Aog{XbOU$4xb`os?-VsX2YyrpT=oVPmjJ>Xo6}Qmj9Qfu(MA+yq+zZVlx_0DpCkDUZw| zgh7|JDKd%i0U`t;9fLTcPd9l%BMM0wR|W*vY|{c+PCcchqhC)Zlvz@!?cq( z-0_D2%mt1r#)%7}0y8My(SI$}AwWmxo@r3T=SnEjaN=nX_g^ZV~dXYR5Cms4E$Q!yVLlb z4xA!g*I$Puzcg?ZMFiL22MSP}^N)@K2pihf7jo_v@ei{fq3|N%u766EjFuw$!QpFl zYw>$Ug%c}Db($+}^Vc8pAWnGor*yWjkUQALfqQD29aB3;m{OcXn^@5%tpypV$hN`6 z2{YR{PGn}A20>S|71~`5?35plCk$NXck?>gH$0|tF{nc@TU=*>W14%l5w_>hUvXyK zZ?8C6Ti>JZJO<)JaDVLDHbbeb1eff4CV6%@ct{>X7tK4$2H+U&?bRSgrR{NkHLpD$ zneWW~jg0D1b@rYhO8gZ_!@yyiMJE;&_1?%QvgaVcDzm5)r|%(oypG*mz~y?zc7ZA& zSa^oWzH`WSVFTO2*8~dGG=LQ5D zJ$KQEuFZ*f32^DF-$$SP4$v|t8fkfTP&Xfk&KQp)lmLb?WXEg6k=+Hh6sq#%MbZWV zPX6HLopC56xqt3{=oLFIAOkH)VFW;SM=~Gpt z;|W>w>;qv&pK;7*8X_8ExiJJ&-^(OhE2?};*1lZw=*Xm7R;-) zt_5e67+fakL z;%n#jTlLecwF^RI$O2Mp*-usrx*KeBXbZ&K%rX8ZtMq)EUgkxL%_8Q0r74kH3;E)T z1c%~IE&rp$M9M}n3z-iP>w&o>5?Jz2T-hC4W(Rj$<@sJqT@#n!qaGO-IL+sx2Bd z*_Dx7i$WiHlF@#Wb)yHuuY^*lZnCGT5_POd%ir5GVNQ$}I7^S$Zg3ziID$X+SMXO) z(z!KPnc;a6F;B&|1S4aCQNGZkleN@4ZT7uBr z%zsj++%!)jqH9Z62fWD+PmW_4B&HsRfIJDf#R|0+v32e0mNb1wiD`aVGc3eHAmlg> zq1_th?qMglM}nv_NP)VsBt=?a>AYBg*xHs51T~OL+B5k=Cw4mlpXm zXDnWW>4A3r5o3L>t@4fpNBEcG@ofimVbv1 zIMp%L`cZ1;y7-y0Lh0a}sD|mQZ@0=75^h{;93#yc+G*hwd}CHl9K}YX(vP^pYBm5+ zoKi=~2sF=%K|81dchm|@Td~Qu$MN%T#CZS;T=+)HY22V?vNrd*HGnP8M8_Hr;x$s- z&}cba7UuvlXfU1Xtf&%SMsM`b^M8KiBQohOIKKOxR1r?>NN;gl1{Y!}1^ZzgVp2De zv2bJs4d>z2r^69lEpH{YW75Yoo=xlip=&iAK1f7$n-+Zq;9Y!aWD?IVj6DixpTFwK znDUKbJrOa}4t6W#3+~r*sdBs_2P`So_`&p1hVEX zpowk|JP5`gMpW4YHJz((*Qp-rHe$4ZCb)CTwSb;I!b4#=&!;5{P9Gt_xLLe1jpAt9 z=A*&o0I`E%?Din8gsP3ONqLr(-T9o7pVzTAg$(5Wu>DlgJafnBhX$X(U}mNP9)*T7 z(8G}Uu$2XK`IAT(i7Jnhq1Dj}-!cYs|LcJ(14c3U=ro)NeWvtSvMw{He+|`)p zg-xf$4C@IAx=UxTT{sZ?~y^M9>%#Ovux+E+Ab zW~f-zVXyKocdYG*V6Kj|$xe&@=Z>Wod{`=IL=>v{a;&EYxN^^D81jK`+bn%Hie7rm zh2kiHHZjkR&MCR?scX2(Rm&j$I>pZbKMDpH1rujH@fi%+S%EZce7+KC6bxv;FEma(v{ShFk|8U+$Q*nCsxf_2w{Bq z;)$vX>%&whyPS8-b`~=ar;rwvJHKsrevkH8K{^Qwvb7kCx8};lQD%<_A-l!W-iTaL zWZWdz>Q_UP(0|jMAg3p=s|ByPl;4Zy-SMyDVp!>XfPf?*Zrwo7q3lG3 z8%`D}O(PB`J$g*p5IZu9XCoMIUXtH3@~s!SWZJ@fH$F5uWb+wP4x}B9a!!R%;hVx* z6HJXFbBX9^CCPjYp*bM+K}OLIx7O8o(8#$E)~A&_TH#69NG?AaTrZ;nQXC@ zu8eFNL`T$`Lxb|2h{sBTENnE$e&u2w6N)nUN z*;nps@yti<#t86HAmUw0_t@?`Lfg46vKZ5ufT57gby#`EV~-JVS=>q`0%H@x)9>jk zR(}T)|F0V&MM5a^lqA3@H!Q)QKVp~k=WpJlFyrynzjI@f!?%N-BK zg}?3;hA1K3S93T3NWyc(7RrIDLR1IsapOs}>W|RZjHzcz!0yZAsHBJ}gk5_p}k)TGJ9g&0;M3 zQzXjxRtCYwwiGI*ioKuIS__VPrBM)yyY;k_t9ZpbaQn6<*kf1(b@RJjQ924@5PzzO z7mMqAH|e9JSFf>8cK=xsMppfcr94}d^U>8$1K7$nhv2SnR(w&nBduP*BrWM~%wPGZ zG<-t!ADk1b7lRb{%ely7Y^nFfijoHSz6NN7$|m$x;I|j6WB4L6q>MiW6lbQW){TF& zpRXJsae+T%p!n+Zk#VD@P&n(ogMV7TXL+8ftMN5lk;7T)gs$B21-Fw0=h!z*0Zrh$_+t zUFyu`ooZ0oZW&EgUWHK~Mu};2Qz%acSQ=2FYy%OEu4D%M_`pkJs`V_F^hKi}Jkm6oLQh^BIVYanr8!2~wcyw@b|B7a^Tth(mv*K_?c zU#8-CvsPx!=Rh%;b~DNPuC|9t66T{_v9JjKqsdW#Jw}Aj%EnODCEKS|Qg=mo#y$Re zx+{lH)|xO0CZWs9zPv8j-+N(eR}3bou1q$lCoGe_%%AF6@5v_oU?mOflAt&O@+{(d zfRFsm=lZs5C~C9{#D7!kU`mZ-%(bX?17=Z4KgKcSK^ida^2a>(mCq0JKk&-=o~n0RUzQmRcA5tn>V+x1VdEgVx0@(<*!#vNAK#y^pk zy~iaJaAL@JUUeD5`Lu-{Ynbz|QfbG}FEchql&Z7e0pzUEuasmVdz}4zT(1d;jToL% zZIOF^gq!T#`G2e|l2r_?1|X0n2gdI;-J4QK@LbQMC@_w5gtq590fsar##n^muc0fe zTEc)!S9Fjb;!l8zt|je9TH+teusJ-FQUBMc&sC zn{bnTo}%3a^=WfR-SE}|KCyTTLFb(uyVW&a1ryFX+9)g zUdFF>CZ$`;9^MPNVU1gpR`8tg8Oe91PK8MRr5ed4iq$YQ*iZ`HuTmr-D|SK`i1Dap zF@I0&xnknY1;5H5=~VSH#tp5T2^ttf-?4{Q+5NDRZuJ?6MBXK`)^KzkeAa>Ufrw)& z{(9cS(qL`F@98;E@3kvsyIn0hwnjJg6OZTpiu!|wn;V?GSCOS1e9&i~>%@u4CG{@* zX<|X4WQ=R8kI^W}4+f)P1h+XlpP!ByQ&f=>&|15X()s zr&$ei_o~V=ShrKgg><5sJCsvGAx`Y4zvoMPk!tjkF&d$NtpxR5^LAHP{q7rPlz$Vf zK=@(7PbmPS5?OUXN*wvgkC}mbr9GYaNiIlS2_#Nip01TnOyh=0_QE@)^a~Ntb7<$R z4foKKuLJN+G7$1hCv$D?M76H=U%OM`Q&2-vHjPZVO^xHp{Ya4rW0>qt!Z8ytb3o2S zi8Qi=J^d7afc~P&7&gv(fOvKhY%W?;EpZ&-|e*S>eAwljVt3PQdh;4 zg8~u8yC7_H0)3z{rQwv$ydI3D$8JUo5(*X~hm=0}L5f@$yPoAKUx?Cu!GCj^3}yET zAs!K{j_>2b`;D`0q1x)QGJ9_PoyzPPruFlXAKkwK=YG3KKKBVB={92$F52k;Oa)V2 zSqSYK<@b>-Te$}x9-mY3dr6anT)FT*l(!(qV8wXPB3`=Z^qV<0osHF7K@tWTd}X=l z+TQV3TirnK7>>H$U4tAUzkkwScam+PR9!wgcViD0oJKR>b=2XWgEEzUhlt{?TiEUc z9Z-I@(og9GZSFFVd>*+VOD15m6L8zF_1)b_GAk0M7?evL*^(UXKKWHGr#l@?Nn26^ z&*1qTk+*61qDc99FNED%!S=xru@y~)PKzM$K6HzMM zU#=(Sdmgv+NN5<8PJ*mr#~u%^tyA4o;wCL`=ZVo4>IvolIpw)xHTu~q{I&KWO`I?% z0O^VZHmAQ7`QYnb4u7nyNmU!Q-WmRZBw(z-N-hL^DO~_Hr`A20gV0zBCBr~xQ>7npZdg z!<{q5O0009;-yiEDAgF+B16j#12*98GxF*lZhtY@m(^F6MtI)lf0-%vuLvoxw5LeV08SGbxIEUg?YrMC{6hU(=6(;Ko}@ecR){>uLcub z%{_P}IjhN$^naXIXV)3=^8umMxApuHJL-=i^UL^OKQWjosW>Gp@);#2W4#YeN0iU0 zfxySxrs11WyK^X@;}IrO-QrnYHRA9#>mfJ*nY=?veT0$F$Gi%;Zpz4n*l=>C0lR&N(WOgkJZV*?{+r)(QM77T&5uAs#KUo8GpO2*ypDVHP%;bdvh+1+w{uk zEws}g1l0`93Nf(1j@@23gB=m|71mI*^j~@VuXcA7m$O*8SEo1-bf&RC5A`mb?dxBW z&fUwzUrMjl0-KYYmd%{B=Vi_zw%LA+y&mSMO{Tl5Cx>_#Izwkz94a$a7d{`XeJ5or z-gB|Gqkkr2kL+1GGp@b$VL13HMO6yVeu?V(SaD^7hbscN&F;aZZUCpFkR?RnDjf## z3_128EtxSUx`&Z&S%SCwZGd@%!}p88f`9J1C~Kya3~B0paiHl?yN#SN?MgrU zIO){~u=wo5Wzr8-IdCB#VR^o=yO+#6HT0xbjc|0_Y>yU+j z*njW)T@{w2jeUm1p83%aCxs7e`Zy$Bi0(gqd6eJ(f+G67XiOSO{~I-&o%zBSA*471 zuHJpI^{hcyPf{^BKxRUoBNFpEXJXPJRjxjMQ1RE*4~&6P;i+F55>H&nwOA2-aGxUl zj0XMscJ6kiG!k&%U+J@uj5Wb zy?9|`N!+MJB4Vi|szU>lE2ql+2GSXRYlYorGpFVI&BNN|`D>+=m-F=~@Zm{(@Spp} zjuKbQ_E~m6=JnYMjyc5>UP+ZHS{RLvIcqKlFs=6T9-Jb|Q1*F_kq3%yj1y}xQJ`&+yiKCZ42suPlDncU!M3*ox6(zpo zeC;Zk2@{PRgH8B`UXi=h|8w(!ihuvInkY46Y3y6)c@Xe&!SX>WxtLytKXWHe8rZns z;gNpMRlh*Rl`r%O=C`+H( zI+;RrJdgUqB|Y#fI6YBgQGd-cJrdL1doMxXZHf~xZ~Kj=AivKc(P~Ge`g_QX5_l6J zA)^P+CwD*4He18UdQtSqQsqvzt{Z~HDG5HZJHC&KIKSP*`EJzQL5mZb@jfuW+h1Zp zB#g7v*a%O(X$tA`1p(SOl{DM`v0XF*$UXJ*S|pT*N`6K(g1|yLnSWkltz(e^S>e+; zyXQ_uW!C1B2k@?Uso_0_;v%j0DobES1aGfErFA|HQ82QuplUgaGU)TpoCWW3(#PZB zC4AzYIGjmNFY?IP_G)#oMend3Z%j1q;W(I0W5DaPPod{8B3fqeFY}4hVZ9BK)gch^ z^XWpw60rmv1ct3B%YUMxjwU@?AGdqjV*shK?XpnzTyr*Fj&tcvLdBd1KkJrwl8#(= z!bm-`H9H~=@{0iu?O3b|U4~7rpY!~A29B9l3o7i8G3TXP9#fNDFbF?#Hrnc_`e)^B zvM(hNopouB{-}J}O>@QF@nRzWHWz(lYIYwSTIm8o5&ODO>wmt;vy_2_D)`%ilmBWW z4E@*TJUNi{8*!Mq&Fw>YtWLxu9nns?T%l=9UrMf zL6W=^o=9Xcr~Xx_V|Ak$`W4xd9?d!>vZGb}33H@@M0h$W8@NR=uTmf_OwRw2r|y#< zQaEn94nGIQXn$FYiFykhbf{9Q`@t_v601iob*l1J=iyuSME5FjX%E?fV}x#8itdPV zp*q~6USD&s$VR}yJ&pzK=~ex?&ufx^<5y=?CNPxLS72jWpx!x_8)iGLuP3~#4W}(e z-ivRKP0s;;V4*#+9oE@xHB<@359^ER*m-)JJ=G6%ba_n1=Y@u8swt$rwZ(r*w~7n*;Dht9l0Br}XF?ZC&N zM|_`7On=1h9>|dzYg(<-MvM(XaeLJ*RgY{WZ$Fk?Xog`HarmkqB+e6d9qautkp6SM zk+-fYg_=;n`cg3>8ye=p6gDb19!f!k|S$W=g9$QgU9~ zLx00A3vs?%WUS=e-1LdxiUs5kgFq!@s>6onZe0cS!F+$f!#|7T10Kn2*MJBM58B|- zJM_RcTuDI-g{jByobOeAtJA&uKOm(nQA2N_LtZ~7YjHIY4UD`1gf#D%)*s(K$d8*c z)>sr+k5jqKfy$<0d&l#?k=vcFko0PhtA8Y^hHuAFZgtC)b%aHSzKXIn9;uUMX3gj_G*DDPjq^o#iac+awGxQp^=X~y@cs2nbLs8G7) z5}Mz8@g>zY)}(vq@qy8qmCds`ZXk0_f}2xc@u^kOtHi{QDaIqylxPO7QP%4nr+-4k z=Yq{i8Uo8avZ5O2VurK4)K^{pp1@e0*qm~hF+8AVnJX(@4#wop6^1g{poCVD_6@Z$tJn3$1W@FF#V zEdlRW)%FC+M>$S)Qjc%zXcxKxd4Cdpq^Nw};bh|#cDM%oN7zx+7hL+&X*M3oV>F~= zc|yk*-1^)wXcfHJWZq|fdbc%zCt0H|sZBc?SInI!BwVmVN0QO9wiwZJZF2faa#LCY zy(STmR4KKl1FomSg!zS`j)m5n@H!sTr!+sNKK?l*-lZXsOy>eNm^2m~+kYS|Q7~|q zUi$9KW~sTVL9oUzyg)>`uazQI7Hy}Vn;8!gk@d4dG6LsAa{e=)h6(f8exQk6I5z2K z#C*vQ?PP}asEN8({#th> zvW3SN-y41m&3pdmNAlSq^M3$ZQQ6*Ne~3YZ{j5`3i~wFcK@=V?zLOSZ>SjaM2iVSE z^`Gp%n{lukMC~vpqgl?+aUSQJ%^-(pSjyS1%B*jUdloTs4^Co|U(`Fy;K1}H| zuGdM?%)Lz`8ceF$CESs#+Yo&+DkBLW6}+--kguKh{TFC0*g-L^wZ(Qm zOrCx}>27{R8-8vHSpfF^J54F7@2SHq3_0>!eebJ_Pr`nY%zvB;pTzZjyDP}yk@91d zj~=jhGWU+P-yUVS$Qnd8=9<(Edc)lh6DtmZOcF$Dlxx=uY4$XFQl9O7XzK{QVcTX1pzPEYwz}rS z?l61{*+%SlhJPvzV$t4_BQL>!^>)x>{div{iWVZ0iZnAV7e;M%fQzb9YkSX?5p42) zJb*(bG{Hz@94n2X%G-Whk4lN*8UJhgk%WoNN;Mx4U32H~m(BI{@1&FhhA(K`T4h=50pFT&1$;8;IC&RB(_LA!)9o3S8+72-{xga-R_GUsA@b6RM{K zr7{%WX<)BgPmzbpOCb>(6UYM7_YG{i$@ew-O7H5t=T4jH>RO>8OGUe>5ehTrv;8c2 z@;V&BWq)DxhN2QOg17;`u#z%iFIa~{Q1?IWp8#ZA*1bpcriQ-=#q0M)5GtK$yDXVY z1}>u-<)#kx)PK(ej!rTY&NAJC@+3u>Bz6xEv}?#uYbucC#1=RNro987DQ{;?8KYBFlagM z5E@e{$T!uLfu1ELb+6j{Y9(i}hK2pXXp;F^A6Qf7sK*4cOKS@Yv+Fy@?NlWGeC8Qm zmWDFSx`a=DKMV|7%e5m@B{%-ommqMM)|+j(yTcKpxU0lG4Bi+^&jRBiF;-W!dMuUx z=zoMo{w8VaGjM1=>m7hOvGGMq`2YATDSAnmuW7uDS!>NmHT{*fx)T$(B59+it=ez} zD5JY)2V1~s6t}GxQ4{z63LzYIf`HLlI%uVvd~%cA=K|~!)$-jD-a#urhXB@)nCo{^ z=ULkL7MGnSw)+^{1zckdO*#Wzuw5JROMf1J-aGX5xMDIj``Q2m&59lMm17SSF5{hr z4M$x=%L>i!&4zn*DdSrPFLXAmkg!5}&o5{nHW*q=aw#m=g`Gomplz^jW3yx1wv&!+ z+wR!>(ox5@ZKq?K9ox3;od4d@nVs2NYt^VmwQ42(hHnL~( zwIT`E;0F=oN%%orM=7lbIYux9=c|Itdbk5xf<)Sk z#Nzumswk5q?t(eSjqPV|TsJTd$}!+xBjipSJd&&mQkvaZ4aLzMW*b)UmRuRsi`dV> zE6Q}A`z8exHx#A89sAMNRzj#Vv7ex-y$?UR_q(b8#&}gdxK1@N*aR2WI)|=AZW;TPIHrIrtc-MMZGksW) zu5H<{lQiFOullneZl9Tl_Nn_Ik~Vi!wx**1E@AR0u1`ihUvZx0Xe|m3HIrs4LE8H? zgUckzFWUJlkp(>(J2z%|g3HClKwS(YEO_)Qt_53n2wj0pID#HPDu&W4^<(NZlS5@4-=V z0@F8&9i7q)j@la5C^5t<$Y8~j_~@t&&(}heI4qDkDm%%qH1B>qtnKcj2goXXO1!@5 z1Cvclnfs5k6u_ukHc6+e?5Z}@W4o1;f+ZO*Lf$yvFXG|?yj#cwHj)Qax*=VhvIk0ysY;FD;#uCu59lQG(!971mG+^R?8T?R4UEvvC&7b>0F&2eQEmRY z%xa6^+^X3rM9tVvk-B@|F%6r+`~pxpkw}zMID%lkVriC^IjGI4_xDUeg?Ba6De{t4 zi8y2#c3_}=?fCge6wIth;>kg#vF*ic3Sm*% zIq*Zx2>c@9y>6|$1_4`f-8>{%x`aG0Id?yg4xl-E`Pb_dOtSm|HDW?{xSt~+20RBo zp3yAAy4D)jC;EMBMSQgV+^FNas_c5{c;-)7b_B&kCA)Yy(H>^n=8`D!qMaSMTR=y^ z^E-oDYf}lP@Al=c4L*jl9Wc4szt%H@)1DFjVC~#8uWz2t=yVeLQvUtAr7zD!juf;2 z0FT`H1&QI?Evj-XM1%hp#6{ZhcyV_*@`%arv)qO>NPD=2_^kAwW4}Lla=e)E1guez zDBNcRFgP+*+dlNJ^#gJY9Tc+f*p*4|0L^&4g*TT7-9~C{S;CZ6kaeP2QH<4}Apz$s zhJI=t(kmF574w~bHK04Rf`tf7etpXM@CXl0agYDN)~R3R6EdCIFJ4oJ1LVjvuw8s0}`k=?C^ z7TajcPwg8NR#1iT$w>J8Jp@Mt6hfhC_G0FS%C`nCmM!Y6}e7{>s zyp9GMJd|HJ-XjK9V~$E!lDY{y`GHFW9wZT4j>2O?hbEJ3JH9%v*0s3rIC(3`k5`r# zPrA&n8kwyR6Mp<^KQCLqADZ>zHamgM`3%|v@@=||mF!%byxGAf_ziH>yJxmcSM+D2 zed-qO|G~?H;*Xi8;w6|s^T%j5)6R(4O<&eZ?@Zg!guVuncSDY-H9GfD;J7->_(8)c zcUavUXTZO)v$xQ=7uiQIm$w{^Q~>4SweHGH{h+i=SYUNkt4fv0{_4RrK~47-I;rUB zH|*C;2F{oT_NC3_MW=}pw!NHYAc5!y2!X=hw4q9`*Q2$}A4g??HGJRhYq)5QUPi0) zmSd_GqMs6yNayo&=9Z!*I)~}mdv1(o3Yh{=Jch$U3r@FYk;(XlZpnL7QC~a5mxL-p zNjYFGKOu<;1;5Oa%4nm0pm9$H2D*lgWMNsJ45E{Bhx_WmyqlnTt0mKHgc6F3Vy{gc ztxw@hj@`A|8mtc}6U5`o7)jzlDIZZ5YmrXWDn)-x1i3}2oaPUN!lj8HIJ2eu)_V}& zd1f>Sj?}R2u!h@Z<2A^~Qql{)Ly+%Y;UR(JnEiO6jb3$>ljbw12hNJ#JJn6)c#}*A z_H0A`5`tL0qbEQ9dJx1r@5C@5xrTSb`c)7^z=P^6e*+1eNF*k^n-!eXGV3(3NJ)vO zK{hy!t9^BU$f(~cnCQa~C?j_Qi7NYnXpq*luzd$Q-5~EaaDp-Y51N)bDr&e>i$beE z)Bb4zH8!wK@#(XG8VO4vi^;bhb*07p78f-j^Cc}N-T#$J7<#cuK!u+^ZJ$upBdahY z9KjJ`WCX-KF{Q|>HatfH1SJM3yC_e zJ&HpesepzGur=^vzef*wu}}>DzJuWBwXF53(yirejz4VIM(|yocs`f1Q} zmA;0`Z@MU9oj&fN(_pH*qY%n3g<5Sp@S7vP<0E_WJmTG9s$t?Ur36Y7;rO$0FK)Ok z?j#bZiTSnSvf?r#S#=MqiPN{N!t#_3>zjzj;Yn6;&H41?35b(M?t-`7AgzeG76L7% zUD+^O8mL`02!*lD%|$OPmb|5?yJh3e>E*X;?YXc=Bhy$1<%Rh&hpqUa+`i;fp9JdEEB8B?%e!usNd#Y2@rozAgy)GRQ4O@p3_@#Bv2UZVXQPJWo5|lN4++_py%MK7$=BT5`b_4dwEzBGG;xBxM^{ThyUQW0i)kXy&6??^xYOYrJz7}%3}N8FCcbK~qXf7t**x;fz`2p`M;lK}>Bn?j z0Jl*rmVR(dQb@YHF5vNbaSp|>`~zEnsvgd2g?w7UB_GR-5X4+#glHU}&$bD#Z1Fe# zc1dC0;S3fSTe3uYgtq|)GT)$U&}pA|Sd5}2?}SZGLCtgk!`&(fmF@ACJ{Zo8k|DBB z;CBw!@W^~He6o-l!Sn=HWlfYG56z8%m$ot+{?Y3_Hp|}9B=BF}0lUE-fLNO^HnKp< za%d6&RfvK^itsOv@wS1c!#`&%mEYJ7R|Pdgg<|-j2M*Q60nHD?WL$+=^;uKB`!3V4 z*!iw-DB=1vfnIs9JVZ${>g;`{CT{;|(O{i!H>0RYa>i*Tfgdi}UIL$|Ak9eB@GCW^ zMm#)+fkvm|0kGX}N{t|=PWx=Se;mJ+&HZUrpfgQ@6)}EWsWoS!JGk3#OYA$ck(q7UO0s$?=LMFP=s27~{AFXM8`wVnN4a^vR!DoAtc!wLon_ z9ls!D0|@-;HBjcV-nC#h6PLF$Zkcf6xBN>yE^UU_9(YB8cro>}{9fUpkn5O3k-udi zAW@lIULjTOQ_=*xe%B|+Fd^_BUGsOx**>(tG0Y2VNp#51g2HL~O_0-@$i4)HtpK*F z8mg*x_0Mr-%AhVk@G*T(`@o;_Tki zV}sEz?RcC=9m^g}<^nG~G~0~byw2-~*@`c$H_L1|1wnLR2oz&ns!^uJW^ zwPKoeWS5lr<-=_`h*>zf3nfL#u=Dz4-TLP0x%sqR0!iPO0Kx!)z zkE#I4XTnH09p(w?!`2ykcrhmS>qihNJyDvdDn#=Toq$HtT_^#8{r$3RhWvq0C%7%TNd_DLeLx+zsPlB_msA%{} zP0!Y}QV|}ZR2M#N>Qat|sz8-J5L9GfG`1=Z8?0(+N)Pt;M~aZEBnq~`r3X3k5HkJv zSuW}w9N)2~hNnWNz8>x;!jbJ*YqEP_m{kIcvYAOUl>a>&DJyw0;l<7S#b`m^%17$n zgUk4S%Nu*6Y+J?X-$p@&Uph6~0kQph1+5CiCPrWJm7!x_H`p>eW~WxGfIJCjXeXUu z)-!l1Zm5p$-<hT2pPYUhF{;MS+-F*x8wPC+5>3CAS`^Im^uFn(*aa?ic)X$H)Dq_IA-HxF@ZIKH{q(z7RQH#MVaNW4U0+2{?o1&JTs9%2SNq|2eQioS^=K|(pd zOKq&vBw-lhHTtXjRS#CLkrIiNp=^i2LFlg9b3yI`jGgoUNtFo!fWx{+X^FXRXI}L( z-W(nYV{&`{LU0C+A)?#poqna!h#Z%Tm;O08>W!X*XQYK=2^7(DKLET%F z7TK?J?ND*WJLv^E9O~H)f?-FdCb zyRm3=;w!q?$8{I4+r}lkp~0$axRfxj2{u}MM6*oyiL27aBYsN!G({m@EE7M@ zzFaYU$5%xf{oL1~{@-T|8d+^}C;jO15Z-OWrDSJQ_*?T0j;Y_dLl){ayOwC$DFwQz%7)P6gq5|qY8^Y&F z#MaGoBn1z-K#GLUFJ|nNcJ2;+%%f}-Gx#qo5QBVX1my{FjaEEiYvf(X8P?S2R2t_o zmvE}092j9;_18t0e}(mY8Ot#cK~h*hOG-6Tkx`C0E4sw1fKaCaql}1+U3hR^e9l!K z1XoMbNH91TFdR#b!43yfsgv781KV+EOpMU-n^hA%Koo;WQvkcNB7LyG$L+rf^O@M! zx}LI&RH)HD((h@57i2p6aixEmc`$#IOx|bs!)P!TV_)=)Mo_V*9$5sM`-ce!nR#EK z+%6it_Wa4+AQO;A|9U2tmlTyPb7h+;VxQnORIMJwb@v;#(RW2=fEGGiSy?d-Tv0~n zfZB)wps||$xO%my*kgE9*~6M|`$RY)H_lyWgz1T3yQTJ4H~(O9+$HE8bPfNmx)ZpN z{w-@0s?!AiG5bt{LHzGiJu|Sd!IMFk^eq27fboXS1|pnvay-?;8|F%$7%V}}`v9!~ zw;ZiDYwNcHB}e4}ug;2}i!Ro~Uh>(Y?L%4tkohmsR=^`|%Yj$CM1aipDEAMCdNJA| zgS9T-V8vH#uToW?*-jQz`!WK)w)ERiyFe6dCgIQf6V=~=4Oz|nFDiGzl|S5t6QAUp z>V71E>@AE6V)00SWt;4IZmqa~I$h171}3oyr%vQj@EQlfLNs?%8`yiIh1F)@t`$P` z0^w|5o9~ZM4Kn}bbwE#hzH$0L`A*LP@u`&7-(TQ6{>2k5gY7ZruEkF6Ezb$kRCRtO zZ>{yEGiVM*=iJG^cJ6<_~K|eu~ z%`Uaj!LJRJdsL#>*mSXniG)X$PziA{(h`J9UT)g;+`EZ5d4_kUuq-$`?SKDJfP=_Y zkq4c}u5*J47jH3*^>LzdVUf3+;Dd)wz5x8Jb!L-b#V0VjBIUO9(d|5@38M=oG8BVb zNT?IDw|ay16^o0g9SvIvG!dIj%S@B1qcqX*nrM8nx$%ncm()*YhGPay^V$5J0T4wT z%!=#vpZd)&&e-lne(+@vi{N2Xz=r>xzUOUSYYAic@lTbsP_et8ammClE*dU(60)Vj z_b9PG=!ZNPt0@uV?YTc@Sf2J}W~?Ra@)!q$8l4**a~U8Ydc?dxF<5fT0v89wE|l}( z^~{o9Ed*RLnXtODQx#~dw^z9A{y~z$h#G&TwwS7C{%%>rkQT< zDSe{OTl67^9CWtA+n6uf&ApBQ18o`HF}Lmotx5Ojs~{gNMQoUM7y=YsB4WDvpHu~{ zYhb0|*u2Z#()*SOWMRV@z#x1vf~|+U;Z|Ef(I1!yLqa1iUGWwjn2wJ3?kEpUF*9C8 z{I^^_+c3_v8!{!1V%UzDK35y6q@Kh%*atzVE3<+PiY{Zx;S#&QNS<{|DeI&XjO(Ni z1crE8N14;;czx7rIIv7^hZW*sVKp1BHaFMoiCcOU8}g}WO}{7xf#4qC_^l}&590t3W7$1?~td@iuSCMKr(sN5($;yb{ zQ<2zAA5AEyND)eqpVb5MMKK!m3+mtX^TUbOmd?zqu~(m!9CLcQ&)EFB{9LaLr*A3l*%)~Wxv837 zTf!fQF*t6WUXe*{e|=f_cT2@c7p@*1W@e}19#paF`~_v?3*3oNUU5ci4eEdICD9`ASw4Gj%)&U|vg>%_UU))M8q25k@W znG^3UCk<3%0CZo6xHoq#t{LqubTzY+KX3xKEUiMzRnQf0m5J2`t1@Ks%u=E8m&pTC zHSROQm(2U|$KK;Q%%A0P>Di;+Us54Uz6XDdC>czcr#)>K>F})K2op48TEtYX5KgG= zw~bt=zAB;WJgXZW^!>}>=4Nv;((!)rX*M89Qh|292Py^U0tyVTpAEKo|bjVG-^;aIchK`J_K;Ggt)&v#6?%mmp!dKVm)#pQ`;QpY~c z;@_h*?N!nSqZs1mwk?0D_%-OZDvYRp4qd%hmwGf_9Ql(#yFBzpE;}@IA^ZQOzyiC; z*^E%a0iyL|3BxWIQfU%X1Cs_Rp%L=%@veykC;Ln|HCw=*Z>Yndv66J6E>_5-0>rFO z?|Nfhx0ojDwyD`9$~mn`HC+;OXhcanZMRH5CcN;()%LAlBaUrgWUteOSbWl~ibXO< zyj`A1N|pF&Y>_2f5g#jwG=2@ujA7ir$qO9t16qu>PnM{Eh=5p>Ql7#;FKO3vE+JDi!cN@w9s zfUmnLKki1aT`{&$Ua&-iIXy5+G_>wk^;i+%qz+LPmVOkipphVV#oHUNWGKOO&fo-K zhuM)_5Q!b$C_6`0$X7})uJmmDn>n9fL@&e5)#eo4I+2MxtGL2uxf0(Nc~6n7#(bX# zuXt43@j~Hqbb$24B#D1Y>sjs4CvwmSYslyP8QI~e4Tg!j~glc90+HeOeC5V%+NKJpMTxi;(3=3{L{Yfe$G2h&HbPfaN8s&m%f(08d;GmyW( z^==UPshUb_BQiqHQX(j@_T~92V?HpD`#`sw##k#SjyP_{ndW6~EN}4T7#PvUBOutn z%=)b8W|E64+Fff&ag%cM^?e}$TKV*+hhJ}cf#lbeudgQ5n~e&b;Ra>iwBk3AlAq;s zu;j4Ydo_Y&`o`(p3%WfEbfyDq47O^_LOQW1%#2+buz7_r9~8|=r!-j14@ub(SPO#W z_kM@0$`t5^rtU0*O+)4vvqyPfr_mWQL^$Z~74N0`KD_1qcb4C-kRw4rh=|-PMP3wr zsrr)BWs|h-V;wk0$z#K!jUI)E{(SR&Q&=^I8l2!i$4tXEH^>3+?OI|ZjVCS+W?ke; zqG(q{6WTirwag(lMBgP}dG0&MPOV!{1<>(}B+UGO)oJ;XAu-$TwYtWBDVeFei)s@l zY}t5gBn6RE(#AHp)VK3MKgFLb#rG?0eXzd><(d(n?yr~*uH+{==QR`Bl>A#9{`9$@ z1nBf+Ew$870c&-~QbG-SY`mCQ8u<}T)!R~jm98c`x0%Eb*j$YFaw(I9y%QLaxXJy4 zee}|#x(QSsZ$!!Cbzs0`tAD+hY3lFoqqQXTA7*t$UTR{qWkDxEmaGsR@#XJ&5+S}8 zeWT=w{$^0wP1A$I!3x98KxE^_vIVX$6`0M6pDX9{Vo)mD3j=)jlL9RqTwd!*URW-v zA>R1Gh|{jkDvy^8=Pj+1cmr$b&h|&tnb3CMkU)uFcxT3o$^?eXJVYc;Nnv&oQ?Qa~ zJA(oPim^uL+i^ZXmXKtdlJ0j^A>)I}Dba;)!^BEwB-|irKo*kaLti@f6MvfGCQvoH zC&X{}1pIMoH(LMleURKfAzx3wOOp@@%w(T5x&42F1(C{8bq?CO>ooZwK!(bs@ zA*Pv!XP-Ms@?D=y0B>tW|CHmMx}y_X^3{8giS|>ZUR2Hlm(6bb#Qr&EDQ#@637GIw&Jd+YIM8=R=w(ob zzVdsiQwahDx2eHCuL(#igw*@XcwB&!iv359Nfc|HKQ@dBEB!hJjzsVcfA8G~=J}VD z(kUF^<$U^Jox00OJNGKpzcKB`xE=S{aiFE76!5G~l%&H7`s8kF+_dy4cnpgt4%@vD zQ$}bxuNI#Wg}zC(CzJ*6NkqYz(VZBT`8*AuT@-+Q`{D&tw>9W!%p{@Lio?2+Nrh=b zpKL)^t})!GR(cwl4|}n@+bk6sJ4F`%yB|aGq7Kew;`TL{SV{qeRsCbe8b%4-bxEJ> zDd)4P4V&4DpU4W7^@qR{5|E!F_19-4 z-mwAYtu$mTE2l8uG5-cgth>#aRmuAlmhS}hEEfe_yd$;b4%Hp${=4Pkg<%&Pg`dq# z3yt$@aJ?mziyZ`vOySRZP#2r~kmo_ZVE^H?U|fu0S<^_4HcH0U|Jt%C0YL-T@8?aCpDOl z(Eg_*vZ$J)C|$f+o+;L{9{; zbkdO%Y}aDOjABe-XWqJkV?&gB{MZcU(=|F4aVywn2WEwQo0o+&U}FUMR%hl1Tg@X9 zL=et7L^XD;gzueFji}$JhhqJ$1mCc&l|-#QBWo1y{GAf^yzw1BmL?clhuktOW6glr zGJN>cont7HVr4tlsiIS@lQ?DPVL<@nQrioDV49>M-IVEp^D#jEARfy$*-7CQKYGEG8dw zcD+3RDuWB0$`N#gZ7@*u!%J?bobG6>%gtOyg@Vpg%B%1$&qx2^slQnwEZ{qvRp+VYkF_F@Rj#>&IY#mvRRnfiVQhWo!t z!h5iO(EtB)04<>Fvfhf}zg*jEx}gBGhvdr2w?Dxvy{w>Tm>}QfA7?jgp^4e`BYEQM z%^#YWLZz90eX|*v&oqeG(a~|rgAoJ@FHIUmzRK@3crt)lK86N=6cJ5;ohj^-{H;5rV9xIUd$7TvbC4~pt0_^g4@62Q(p$H2TNp8~Qc^UeBiqT}cM=R3j``UxOJS;I3%X4Jv8B`Qh--q;BS7yVb&=GgD#Vgu>YVUr=b@lK6U0- zlKl>IzhVCu&`ogvkI!bK4pC)g66=a_ZTk1}-;oog5Sf(oG_O6cFnpV5kn^q2@x5%I}xIa5z?f$y~&zD$B^JU%7fYA4Tv635fJBsa|%-{JX<;zfS`SJ3>A;kC~VRGHbLmOmGPYMU#Ep#p&6Ok|xjPi9t&Ic_wsu3;)QUy{<(`1p6z zkaian5ZU|wIxiH@97l#`LUv)AIL?;k2&VS<5?UCbYht3B8JB|%vH|lQGy?! z%60nsnu%|2ER2)`?HT++Fo9!W)!_#?TA^8!aTU02-<8h&*F}ID^TX)Q5Qrv3+qke# z%%W3k4%rkz&3Wszt6*_zw&GYRw;@1JLD?mPw_Q z_fg=<(A~3@uXwnEcpZ~B$%qO*-RxHrZK0_WQgq!hC0s2V)@c$(y3t?kP>a8iq{1sD zJ=T$?cvmaskx;pzLbJPu2hM_B`DQXzSP`5}>@x@YFeaJ9%DoR~w6P^=s_Y;o8f^iE zEFq_=RB#w#5|(qLOgKgJndpGjqgDdA(RR4h z-ZXBnvewoGowaBWqsU;JEIKL*x8UqWyQFmf*Bn zp1!_5K2osZr`kz*@sG%czO5#XLWrZV>kM)i*P9@9QU(dK|8{6&(FT+NF#;)G&{Ze3 zXBg0tssV#2BpZ8$o!yGMKaYd7OI>h9D0`z`IL6EIF_f77<0Tm~=bL(GW{7Qdp-7Q} zcCbV;n#@kVaChF2hAxNz*uq*~oDO($IR*8y61|mb4<~zM4B10q#G4U31%q1L-|~CZ z*zY`Y#)s=T*I%_o_gVJ3=w4kJx&xOvF*;GONn6&qL#$6gd3VJkPT9}*xd4Z+ zRK_nt;gec=Ma}R*+}Ic)5R$Ugf$Fvr)NdA!1!b2$$=Ot>DZWxHO@-hiOjE&4wh+yn zHYne9-i{^ZN7@29IcktvBsF=&LILVd^KPXJUoP1qMc~l0)m&MLfJOPjUY&Qi`>#~X zBIP*6LGW1nv&}7_NU>t%uF3@|ulhxSr7JC|g?p{2`n6*h(Oa- z^L3)y#uYYj_Qq!1wO}IxIw*Bb_eli`f~lC1B&k4=Z62PNcm>6A3VW-YX1wzJD4DXT zJC!tGcHNtsmWgvjvoP?GyLxfxA2hS@^z=VsdiNbCfvg#TWCs!{;Lk@evR9w1;GU_$ zt&QFdZ0=pg@^WIq&f{_fuqwrRm9k?i_ng+C@t6yE-`@`CxxL1n#i%_?c@2v%>Px!S z`c%xHo2pF@$Sk(x7I*qY-0`jRQAv&vbP!=`HqJUWhyclnr>A5Q#GmGp-<_3y-7^A) z`K^~{)nb6=wY*jL0C3Rp;r0P`$o0fHdKX$XXTtJACd)_Qa z;{SnvJY8^v^-+MkyAV6@`7h28Y-sw!Wvupvqvy-tM?dQKSU%>DrXvNxZvc@SHNnDDHM5L=uN*X)LFYOf~ zf86f1tU99K;{`sraAfx4YbKg#VI}&vY+uPo5=?O6Bz*gGacndieR6k~F;3iKAgKC(>HUOxlkuVzco?wvCm8@l zye}HAFz_R7z%{@{3Z)WKgTr+ad!-*>41!rIFfin>B|Aw!U`ilN1G_*owB<3oM)2yk z4GvLO^6nMs!@9?O7-w;bbmx(Z=vyfvnD};=^{4HPt2tq?UZ%67V6FM4JfEo1V9YZQ zA1~}T+!;U1P+1x{vM_JKZ^j8Mm^Oe@PCoyzEe5Lj46rEc;LWW%FVv(op_J6e$0WvK zGHW{OO{qjo6GVTdDU9_#3ZBpX!z9~7*Vp+&U!&tCti_{=0-0?L^@xzN zS8wGZHZlFKHtiqkTf&PEN{H~vi{8qI^WuI+$MxhD2AGRu>Sbq-1r?={?an}I9r;Oi z7;EKZ?WMQy<260A|a!>9eS(WO%1ozvfd{(qsA<^MrYKkpi!(fAGkCcq& z!~73-8KG;k(XP zWJDc62b-kgP~0}Z(&WE;qGHKV|Krv+=DzFU)Y17+59sGR?sRI&H`p&xQEnbic3}x& zE)GsM4sjlF4pCNNc5Vr7HW3zPHZfr~L1O;@t0h?-oC_eBX=5BzM*q*l*s(vYHH`h< zeQjzPWlk;58X`7!a z`)G=YHy^-j&WH9khJVW=ieLuu!VV_U3NXh0t&APyloof$_%Ty-QMJcG;p6#`ks@^$K x?UxKqJ%Cz8!VG6_Z|36aY;J7#|6UFzHgGPksS%*y@NnFmJa7~g;))V*{{#LrQj`Dy From b233a535ffb23d3a0407e01af05f3eca60b31a78 Mon Sep 17 00:00:00 2001 From: Gowtham Rao Date: Wed, 2 Apr 2025 19:47:10 -0400 Subject: [PATCH 3/3] d --- docs/articles/GuidanceOnLiteratureReview.html | 4 +- .../GuidanceOnPerformingPeerReview.html | 4 +- .../GuidanceOnWritingAnEvaluationReport.html | 4 +- ...itingCohortDefinitionLogicDescription.html | 4 +- .../HowToUsePhenotypeLibraryRPackage.html | 8 +- ...dWordsWithSpecialMeaningToPhenotypers.html | 4 +- docs/articles/SubmittedCohortDefinitions.html | 4 +- .../ValidityChecksForCohortDefinitions.html | 4 +- docs/news/index.html | 3109 +++++++++-------- 9 files changed, 1596 insertions(+), 1549 deletions(-) diff --git a/docs/articles/GuidanceOnLiteratureReview.html b/docs/articles/GuidanceOnLiteratureReview.html index a8186a6e..efb8f4d5 100644 --- a/docs/articles/GuidanceOnLiteratureReview.html +++ b/docs/articles/GuidanceOnLiteratureReview.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0
@@ -120,7 +120,7 @@

Guidance on literature review

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/GuidanceOnLiteratureReview.Rmd diff --git a/docs/articles/GuidanceOnPerformingPeerReview.html b/docs/articles/GuidanceOnPerformingPeerReview.html index a36322db..7bfc37ea 100644 --- a/docs/articles/GuidanceOnPerformingPeerReview.html +++ b/docs/articles/GuidanceOnPerformingPeerReview.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

Guidance on performing peer review

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/GuidanceOnPerformingPeerReview.Rmd diff --git a/docs/articles/GuidanceOnWritingAnEvaluationReport.html b/docs/articles/GuidanceOnWritingAnEvaluationReport.html index 4bbfc4e2..3d74cfcb 100644 --- a/docs/articles/GuidanceOnWritingAnEvaluationReport.html +++ b/docs/articles/GuidanceOnWritingAnEvaluationReport.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

Guidance on writing an evaluation report

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/GuidanceOnWritingAnEvaluationReport.Rmd diff --git a/docs/articles/GuidanceOnWritingCohortDefinitionLogicDescription.html b/docs/articles/GuidanceOnWritingCohortDefinitionLogicDescription.html index 4da83f30..5042870f 100644 --- a/docs/articles/GuidanceOnWritingCohortDefinitionLogicDescription.html +++ b/docs/articles/GuidanceOnWritingCohortDefinitionLogicDescription.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -121,7 +121,7 @@

Guidance on writing Cohort Definition Logic

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/GuidanceOnWritingCohortDefinitionLogicDescription.Rmd diff --git a/docs/articles/HowToUsePhenotypeLibraryRPackage.html b/docs/articles/HowToUsePhenotypeLibraryRPackage.html index 2a262e9f..779169b6 100644 --- a/docs/articles/HowToUsePhenotypeLibraryRPackage.html +++ b/docs/articles/HowToUsePhenotypeLibraryRPackage.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

How to Use PhenotypeLibrary R Package

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/HowToUsePhenotypeLibraryRPackage.Rmd @@ -150,7 +150,7 @@

Retrieval
 PhenotypeLibrary::getPhenotypeLog()
-
#> # A tibble: 661 × 88
+
#> # A tibble: 703 × 88
 #>    cohortId cohortName        cohortNameAtlas cohortNameFormatted cohortNameLong
 #>       <dbl> <chr>             <chr>           <chr>               <chr>         
 #>  1        3 Cough or Sputum   [P] Cough or S… Cough or Sputum     Cough or Sput…
@@ -163,7 +163,7 @@ 

Retrieval#> 8 10 Nausea or Vomiti… [P] Nausea or … Nausea or Vomiting Nausea or Vom… #> 9 11 Malaise and or f… [P] Malaise an… Malaise and or fat… Malaise and o… #> 10 12 Rhinitis or comm… [P] Rhinitis o… Rhinitis or common… Rhinitis or c… -#> # ℹ 651 more rows +#> # ℹ 693 more rows #> # ℹ 83 more variables: librarian <chr>, status <chr>, addedVersion <chr>, #> # logicDescription <chr>, hashTag <chr>, isCirceJson <dbl>, #> # contributors <chr>, contributorOrcIds <chr>, diff --git a/docs/articles/ReservedWordsWithSpecialMeaningToPhenotypers.html b/docs/articles/ReservedWordsWithSpecialMeaningToPhenotypers.html index 9926fbea..96a6d02f 100644 --- a/docs/articles/ReservedWordsWithSpecialMeaningToPhenotypers.html +++ b/docs/articles/ReservedWordsWithSpecialMeaningToPhenotypers.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -121,7 +121,7 @@

Reserved Words With Special Meaning To

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/ReservedWordsWithSpecialMeaningToPhenotypers.Rmd diff --git a/docs/articles/SubmittedCohortDefinitions.html b/docs/articles/SubmittedCohortDefinitions.html index 43d0c9a7..9a6cfbdc 100644 --- a/docs/articles/SubmittedCohortDefinitions.html +++ b/docs/articles/SubmittedCohortDefinitions.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

Submitted Cohort Definitions

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/SubmittedCohortDefinitions.Rmd diff --git a/docs/articles/ValidityChecksForCohortDefinitions.html b/docs/articles/ValidityChecksForCohortDefinitions.html index 2d339b01..511ac13d 100644 --- a/docs/articles/ValidityChecksForCohortDefinitions.html +++ b/docs/articles/ValidityChecksForCohortDefinitions.html @@ -32,7 +32,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -120,7 +120,7 @@

Validity checks for Cohort Definitions

Gowtham A. Rao

-

2025-03-29

+

2025-04-02

Source: vignettes/ValidityChecksForCohortDefinitions.Rmd diff --git a/docs/news/index.html b/docs/news/index.html index 0bc9ece3..4987fb78 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -17,7 +17,7 @@ PhenotypeLibrary - 3.35.0 + 3.36.0 @@ -96,68 +96,115 @@

Changelog

Source: NEWS.md +
+ +

Accepted Cohorts: No cohorts were accepted in this release.

+

New Cohorts: 42 were added.

+
1387: [P] Methadone
+1388: [P] Methadone Treatment Program Enrollment
+1389: [P] Naltrexone
+1390: [P] Naltrexone Maintenance Therapy
+1391: [P] Opioid Agonists
+1392: [P] Opioid Antagonists
+1393: [P] Medication-Assisted Treatment
+1394: [P] Nicotine Replacement Therapy
+1395: [P] OTC Nicotine Replacement
+1396: [P] Varenicline
+1397: [P] Pain Management
+1398: [P] Terminal Palliative Care
+1399: [P] Alcohol Misuse Counseling
+1400: [P] Smoking Cessation Counseling
+1401: [P] Psychotherapy
+1402: [P] Group Therapy
+1403: [P] Family Psychotherapy
+1404: [P] Behavioral Therapies
+1405: [P] 12-Step Facilitation Behavioral Therapy
+1406: [P] Harm Reduction Interventions
+1407: [P] Specialty Addiction Treatment
+1408: [P] Alcohol Use Screening
+1409: [P] Screening for substance abuse
+1410: [P] Use of Substance Use Screening Tools
+1411: [P] Laboratory Toxicology Tests
+1412: [P] Naloxone Dispensing
+1413: [P] Screening, Brief Intervention, and Referral to Treatment (SBIRT)
+1415: [P] Impaired Control
+1416: [P] Neglect of Roles or Social Impairment
+1417: [P] Risky Use
+1418: [P] Tolerance
+1419: [P] Pattern of Use Causing Harm or Distress
+1420: [P] Medical Conditions Mimicking Intoxication
+1421: [P] Hypoglycemic disorder
+1422: [P] Stroke events
+1423: [P] Single Acute Intoxication
+1424: [P] Opioid Acute intoxication
+1425: [P] Alcohol Acute intoxication
+1426: [P] Psychoactive Substances
+1427: [P] Acamprosate, all exposures
+1428: [P] Disulfiram, all exposures
+1429: [P] Buprenorphine, all exposures
+

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 58 were added.

-
1318: [P] NSCLC solitary primary rx naive
-1329: [P] Death due to substance overdose (post mortem)
-1330: [P] Acute Overdose (or “Acute Toxicity”) by substances with abuse potential
-1331: [P] Opioid overdose - treatment drugs
-1332: [P] Alcohol poisoning (acute severe intoxication)
-1333: [P] Advanced liver disease
-1334: [P] Liver cirrhosis from alcohol
-1336: [P] Infective Endocarditis
-1337: [P] Human immunodeficiency virus infection earliest occurrence
-1338: [P] Binge Eating Disorder
-1339: [P] Bulimia Nervosa
-1340: [P] Anorexia Nervosa
-1341: [P] Eating Disorders
-1342: [P] Narcissistic personality disorder
-1343: [P] Antisocial Personality Disorder
-1344: [P] Borderline Personality Disorder
-1345: [P] Personality Disorders
-1346: [P] Attention-Deficit Hyperactivity Disorder
-1347: [P] Posttraumatic Stress Disorder
-1348: [P] Obsessive Compulsive Disorder
-1349: [P] Anxiety Disorder
-1350: [P] Primary Psychiatric Disorders
-1351: [P] Gambling Disorder
-1352: [P] Behavioral Addictions
-1353: [P] Tobacco and Nicotine User
-1354: [P] Tobacco and Nicotine Use Disorder - procedure
-1355: [P] Measurements for Opioid Use Disorder
-1356: [P] Opioid Use Disorder - treatment procedure or drug
-1357: [P] Measurements for Cannabis Use Disorder
-1358: [P] Alcohol Withdrawal - procedure
-1359: [P] Alcohol withdrawal
-1360: [P] Alcohol withdrawal - condition
-1361: [P] Alcohol detoxification
-1362: [P] Alcohol poisoning
-1363: [P] Psychosis caused by ethanol - condition
-1364: [P] Alcohol Intoxication - condition
-1365: [P] Heroin use disorder - condition
-1366: [P] Fentanyl use disorder
-1367: [P] Stimulant Use Disorder
-1368: [P] Cocaine Use Disorder
-1369: [P] Methamphetamine use disorder
-1370: [P] Sedative Hypnotic Anxiolytic Use Disorder
-1371: [P] Benzodiazepines use disorder
-1372: [P] Barbiturates use disorder
-1373: [P] Inhalant Use Disorder
-1374: [P] Tobacco and Nicotine Use Disorder - condition
-1375: [P] Tobacco and Nicotine Toxicity
-1376: [P] Infectious Diseases (HIV, Hepatitis B, Hepatitis C)
-1377: [P] Substance Use Disorder in Remission
-1378: [P] Controlled Medication Use
-1379: [P] Physical Dependence from Legitimate Therapy
-1380: [P] Prescription Drug Misuse
-1381: [P] Cravings
-1382: [P] Compulsions
-1383: [P] Mental or Moral Distress
-1384: [P] Any Distress (Physical or Mental)
-1385: [P] Withdrawal of substances with abuse potential
-1386: [P] Withdrawal Seizures
+
1318: [P] NSCLC solitary primary rx naive
+1329: [P] Death due to substance overdose (post mortem)
+1330: [P] Acute Overdose (or “Acute Toxicity”) by substances with abuse potential
+1331: [P] Opioid overdose - treatment drugs
+1332: [P] Alcohol poisoning (acute severe intoxication)
+1333: [P] Advanced liver disease
+1334: [P] Liver cirrhosis from alcohol
+1336: [P] Infective Endocarditis
+1337: [P] Human immunodeficiency virus infection earliest occurrence
+1338: [P] Binge Eating Disorder
+1339: [P] Bulimia Nervosa
+1340: [P] Anorexia Nervosa
+1341: [P] Eating Disorders
+1342: [P] Narcissistic personality disorder
+1343: [P] Antisocial Personality Disorder
+1344: [P] Borderline Personality Disorder
+1345: [P] Personality Disorders
+1346: [P] Attention-Deficit Hyperactivity Disorder
+1347: [P] Posttraumatic Stress Disorder
+1348: [P] Obsessive Compulsive Disorder
+1349: [P] Anxiety Disorder
+1350: [P] Primary Psychiatric Disorders
+1351: [P] Gambling Disorder
+1352: [P] Behavioral Addictions
+1353: [P] Tobacco and Nicotine User
+1354: [P] Tobacco and Nicotine Use Disorder - procedure
+1355: [P] Measurements for Opioid Use Disorder
+1356: [P] Opioid Use Disorder - treatment procedure or drug
+1357: [P] Measurements for Cannabis Use Disorder
+1358: [P] Alcohol Withdrawal - procedure
+1359: [P] Alcohol withdrawal
+1360: [P] Alcohol withdrawal - condition
+1361: [P] Alcohol detoxification
+1362: [P] Alcohol poisoning
+1363: [P] Psychosis caused by ethanol - condition
+1364: [P] Alcohol Intoxication - condition
+1365: [P] Heroin use disorder - condition
+1366: [P] Fentanyl use disorder
+1367: [P] Stimulant Use Disorder
+1368: [P] Cocaine Use Disorder
+1369: [P] Methamphetamine use disorder
+1370: [P] Sedative Hypnotic Anxiolytic Use Disorder
+1371: [P] Benzodiazepines use disorder
+1372: [P] Barbiturates use disorder
+1373: [P] Inhalant Use Disorder
+1374: [P] Tobacco and Nicotine Use Disorder - condition
+1375: [P] Tobacco and Nicotine Toxicity
+1376: [P] Infectious Diseases (HIV, Hepatitis B, Hepatitis C)
+1377: [P] Substance Use Disorder in Remission
+1378: [P] Controlled Medication Use
+1379: [P] Physical Dependence from Legitimate Therapy
+1380: [P] Prescription Drug Misuse
+1381: [P] Cravings
+1382: [P] Compulsions
+1383: [P] Mental or Moral Distress
+1384: [P] Any Distress (Physical or Mental)
+1385: [P] Withdrawal of substances with abuse potential
+1386: [P] Withdrawal Seizures
@@ -175,69 +222,69 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 2 were added.

-
1316: Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era)
-1317: [P] Reyes syndrome
+
1316: Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era)
+1317: [P] Reyes syndrome

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 56 were added.

-
1217: [P] Platinum based chemotherapy regimens
-1244: [P] Non Platinum chemotherapy regimen
-1261: [P] Acute Typical Pneumonia
-1262: [P] Asthma or Chronic obstructive pulmonary disease (COPD)
-1263: [P] Chronic obstructive pulmonary disease (COPD) without asthma
-1264: [P] Pneumonitis and lung infections
-1265: [P] Pulmonary hypertension associated with lung diseases and or hypoxia (WHO Group 3)
-1266: [P] Non-small cell lung cancer (NSCLC) for first time using ICD0
-1267: [P] Lung cancer using ICD0
-1268: [P] Lung Resection, adults, inpt stay, no ED, post op new Afib
-1269: [P] Pulmonary fibrosis
-1270: [P] History of Bladder cancer
-1271: [P] Chronic obstructive pulmonary disease (COPD)
-1272: [P] Chronic Interstitial lung disease (ILD)
-1273: [P] Lung Nodule
-1274: [P] Lung Nodule - solitary
-1275: [P] Lung Nodule - multiple
-1276: [P] Lung Mass (not acute, necrotic, atlectatic, abscess, fibrosis)
-1277: [P] Lung Lesion (not acute, necrotic, atlectatic, abscess, fibrosis)
-1278: [P] Non Small Cell Lung Cancer (Stage 3)
-1279: [P] Non Small Cell Lung Cancer
-1280: [P] Small Cell Lung Cancer
-1281: [P] Primary Lung Cancer
-1282: [P] Hoarseness
-1283: [P] Bone Pain
-1284: [P] Weight loss
-1285: [P] Acute bronchitis
-1286: [P] Non Small Cell Lung Cancer (Stage 3) without second diagnosis
-1287: [P] Intestinal obstruction - colorectal specific
-1288: [P] Intraabdominal abscess - narrow for colorectal cancer
-1289: [P] Major Non Cardiac Surgery, adults
-1290: [P] Abdominal Aortic Aneurysm repair, adults
-1291: [P] Lower Extremity Bypass, adults
-1292: [P] Carotid Endarterectomy, adults
-1293: [P] Lung Resection, adults
-1294: [P] Esophagectomy, adults
-1295: [P] Pancreatectomy, adults
-1296: [P] Colectomy, adults
-1297: [P] Cystectomy, adults
-1298: [P] Nephrectomy, adults
-1299: [P] Coronary Artery Bypass Graft, adults
-1300: [P] Cardiac Valve Surgery, adults
-1301: [P] Acute Urinary tract infections UTI events
-1303: [P] Acute Heart failure from legend
-1304: [P] Major Non Cardiac Surgery, adults, post op new Afib
-1305: [P] AAA repair, adults, post op new Afib
-1306: [P] Lower Extremity Bypass, adults, post op new Afib
-1307: [P] Carotid Endarterectomy, adults, post op new Afib
-1308: [P] Lung Resection, adults, post op new Afib
-1309: [P] Esophagectomy, adults, post op new Afib
-1310: [P] Pancreatectomy, adults, post op new Afib
-1311: [P] Colectomy, adults, post op new Afib
-1312: [P] Cystectomy, adults, post op new Afib
-1313: [P] Nephrectomy, adults, post op new Afib
-1314: [P] Coronary Artery Bypass Graft, adults, post op new Afib
-1315: [P] Cardiac Valve Surgery, adults, post op new Afib
+
1217: [P] Platinum based chemotherapy regimens
+1244: [P] Non Platinum chemotherapy regimen
+1261: [P] Acute Typical Pneumonia
+1262: [P] Asthma or Chronic obstructive pulmonary disease (COPD)
+1263: [P] Chronic obstructive pulmonary disease (COPD) without asthma
+1264: [P] Pneumonitis and lung infections
+1265: [P] Pulmonary hypertension associated with lung diseases and or hypoxia (WHO Group 3)
+1266: [P] Non-small cell lung cancer (NSCLC) for first time using ICD0
+1267: [P] Lung cancer using ICD0
+1268: [P] Lung Resection, adults, inpt stay, no ED, post op new Afib
+1269: [P] Pulmonary fibrosis
+1270: [P] History of Bladder cancer
+1271: [P] Chronic obstructive pulmonary disease (COPD)
+1272: [P] Chronic Interstitial lung disease (ILD)
+1273: [P] Lung Nodule
+1274: [P] Lung Nodule - solitary
+1275: [P] Lung Nodule - multiple
+1276: [P] Lung Mass (not acute, necrotic, atlectatic, abscess, fibrosis)
+1277: [P] Lung Lesion (not acute, necrotic, atlectatic, abscess, fibrosis)
+1278: [P] Non Small Cell Lung Cancer (Stage 3)
+1279: [P] Non Small Cell Lung Cancer
+1280: [P] Small Cell Lung Cancer
+1281: [P] Primary Lung Cancer
+1282: [P] Hoarseness
+1283: [P] Bone Pain
+1284: [P] Weight loss
+1285: [P] Acute bronchitis
+1286: [P] Non Small Cell Lung Cancer (Stage 3) without second diagnosis
+1287: [P] Intestinal obstruction - colorectal specific
+1288: [P] Intraabdominal abscess - narrow for colorectal cancer
+1289: [P] Major Non Cardiac Surgery, adults
+1290: [P] Abdominal Aortic Aneurysm repair, adults
+1291: [P] Lower Extremity Bypass, adults
+1292: [P] Carotid Endarterectomy, adults
+1293: [P] Lung Resection, adults
+1294: [P] Esophagectomy, adults
+1295: [P] Pancreatectomy, adults
+1296: [P] Colectomy, adults
+1297: [P] Cystectomy, adults
+1298: [P] Nephrectomy, adults
+1299: [P] Coronary Artery Bypass Graft, adults
+1300: [P] Cardiac Valve Surgery, adults
+1301: [P] Acute Urinary tract infections UTI events
+1303: [P] Acute Heart failure from legend
+1304: [P] Major Non Cardiac Surgery, adults, post op new Afib
+1305: [P] AAA repair, adults, post op new Afib
+1306: [P] Lower Extremity Bypass, adults, post op new Afib
+1307: [P] Carotid Endarterectomy, adults, post op new Afib
+1308: [P] Lung Resection, adults, post op new Afib
+1309: [P] Esophagectomy, adults, post op new Afib
+1310: [P] Pancreatectomy, adults, post op new Afib
+1311: [P] Colectomy, adults, post op new Afib
+1312: [P] Cystectomy, adults, post op new Afib
+1313: [P] Nephrectomy, adults, post op new Afib
+1314: [P] Coronary Artery Bypass Graft, adults, post op new Afib
+1315: [P] Cardiac Valve Surgery, adults, post op new Afib

Note: The following cohorts were accidentally deleted and we restored with new id.

@@ -325,7 +372,7 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 1 were added.

-
1232: [P] Non Small Cell Lung Cancer (Stage 3) without second diagnosis
+
1232: [P] Non Small Cell Lung Cancer (Stage 3) without second diagnosis
@@ -336,24 +383,24 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 8 were added.

-
1223: [P] Birdshot chorioretinitis
-1224: [P] CMV Anterior Uveitis (sensitivity analysis)
-1225: [P] VZV Anterior Uveitis (SUN)
-1226: [P] VZV Anterior Uveitis (SUN) sensitive
-1227: [P] HSV Anterior Uveitis (SUN)
-1228: [P] HSV Anterior Uveitis (SUN) sensitive
-1229: [P] Behcet Uveitis (SUN)
-1231: [P] Sickle Cell Crisis
+
1223: [P] Birdshot chorioretinitis
+1224: [P] CMV Anterior Uveitis (sensitivity analysis)
+1225: [P] VZV Anterior Uveitis (SUN)
+1226: [P] VZV Anterior Uveitis (SUN) sensitive
+1227: [P] HSV Anterior Uveitis (SUN)
+1228: [P] HSV Anterior Uveitis (SUN) sensitive
+1229: [P] Behcet Uveitis (SUN)
+1231: [P] Sickle Cell Crisis

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 5 were added.

-
1218: [P] Acute bronchitis
-1219: [P] Hyperlipidemia
-1220: [P] Hypoparathyroidism
-1221: [P] Osteoporosis
-1222: [P] Viral hepatitis type A
+
1218: [P] Acute bronchitis
+1219: [P] Hyperlipidemia
+1220: [P] Hypoparathyroidism
+1221: [P] Osteoporosis
+1222: [P] Viral hepatitis type A
@@ -363,24 +410,24 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 18 were added.

-
1117: [P] Pulmonary fibrosis
-1118: [P] History of Bladder cancer
-1119: [P] Chronic obstructive pulmonary disease (COPD)
-1120: [P] Chronic Interstitial lung disease (ILD)
-1128: [P] Lung Nodule
-1129: [P] Lung Nodule - solitary
-1130: [P] Lung Nodule - multiple
-1131: [P] Lung Mass (not acute, necrotic, atlectatic, abscess, fibrosis)
-1132: [P] Lung Lesion (not acute, necrotic, atlectatic, abscess, fibrosis)
-1133: [P] Non Small Cell Lung Cancer as lung cancer without small cell
-1134: [P] Lung Cancer (primary maliganancy)
-1135: [P] Small Cell Lung Cancer
-1136: [P] Non Small Cell Lung Cancer
-1137: [P] Hoarseness
-1138: [P] Bone Pain
-1139: [P] Weight loss
-1216: [P] Primary Lung Cancer, 2nd dx 365 d after, excl SCLC signs all d before 1y after
-1217: [P] Primary Lung Cancer, excl SCLC signs all d before 1y after
+
1117: [P] Pulmonary fibrosis
+1118: [P] History of Bladder cancer
+1119: [P] Chronic obstructive pulmonary disease (COPD)
+1120: [P] Chronic Interstitial lung disease (ILD)
+1128: [P] Lung Nodule
+1129: [P] Lung Nodule - solitary
+1130: [P] Lung Nodule - multiple
+1131: [P] Lung Mass (not acute, necrotic, atlectatic, abscess, fibrosis)
+1132: [P] Lung Lesion (not acute, necrotic, atlectatic, abscess, fibrosis)
+1133: [P] Non Small Cell Lung Cancer as lung cancer without small cell
+1134: [P] Lung Cancer (primary maliganancy)
+1135: [P] Small Cell Lung Cancer
+1136: [P] Non Small Cell Lung Cancer
+1137: [P] Hoarseness
+1138: [P] Bone Pain
+1139: [P] Weight loss
+1216: [P] Primary Lung Cancer, 2nd dx 365 d after, excl SCLC signs all d before 1y after
+1217: [P] Primary Lung Cancer, excl SCLC signs all d before 1y after
@@ -391,421 +438,421 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 64 were added. These Cohorts are part of the prediction study and contributed by Jenna Reps

-
1152: Deep Vein Thrombosis DVT 10
-1153: Seizure 10
-1154: Heart failure 10
-1155: Non-hemorrhagic Stroke 10
-1156: Hemorrhagic stroke 10
-1157: peripheral vascular disease 10
-1158: Aspirin 10
-1159: Angina 10
-1160: Atrial Fibrillation 10
-1161: Major depressive disorder with NO occurrence of certain psychiatric disorder 10
-1162: Coronary artery disease (CAD) 10
-1163: Acute Kidney Injury 10
-1164: Asthma 10
-1165: Alcoholism 10
-1166: Smoking 10
-1167: sleep apnea 10
-1168: skin ulcer 10
-1169: Chronic hepatitis 10
-1170: hyperlipidemia 10
-1171: hypothyroidism 10
-1172: Heart valve disorder 10
-1173: Low back pain 10
-1174: neuropathy 10
-1175: Psychotic disorder 10
-1176: Sepsis 10
-1177: Acute Respiratory failure 10
-1178: Gastroesophageal reflux disease 10
-1179: obesity 10
-1180: Inflammatory Bowel Disease 10
-1181: STEROIDS 10
-1182: Opioids 10
-1183: ANTIEPILEPTICS 10
-1184: Osteoarthritis 10
-1185: Osteoporosis 10
-1186: Urinary tract infectious 10
-1187: acetaminophen exposure 10
-1188: Anemia 10
-1189: Anxiety 10
-1190: HORMONAL CONTRACEPTIVES 10
-1191: Chronic kidney disease or end stage renal disease 10
-1192: Chronic obstructive pulmonary disease (COPD) 10
-1193: Type 1 diabetes and no prior specific nonT1DM diabetes 10
-1194: Type 2 Diabetes Mellitus with no type 1 or secondary DM 10
-1195: Dyspnea 10
-1196: Edema 10
-1197: Acute gastrointestinal bleeding 10
-1198: Hypertension 10
-1199: Pneumonia 10
-1200: Rheumatoid Arthritis 10
-1201: Antibiotics Aminoglycosides 10
-1202: Antibiotics Carbapenems 10
-1203: Antibiotics Cephalosporins 10
-1204: Antibiotics Fluoroquinolones 10
-1205: Antibiotics Glycopeptides and lipoglycopeptides 10
-1206: Antibiotics Macrolides 10
-1207: Antibiotics Monobactams 10
-1208: Antibiotics Oxazolidinones 10
-1209: Antibiotics Penicillins 10
-1210: Antibiotics Polypeptides 10
-1211: Antibiotics Rifamycins 10
-1212: Antibiotics Sulfonamides 10
-1213: Antibiotics Streptogramins 10
-1214: Antibiotics Tetracyclines 10
-1215: Any cancer (excl. prostate cancer and benign cancer) 10
+
1152: Deep Vein Thrombosis DVT 10
+1153: Seizure 10
+1154: Heart failure 10
+1155: Non-hemorrhagic Stroke 10
+1156: Hemorrhagic stroke 10
+1157: peripheral vascular disease 10
+1158: Aspirin 10
+1159: Angina 10
+1160: Atrial Fibrillation 10
+1161: Major depressive disorder with NO occurrence of certain psychiatric disorder 10
+1162: Coronary artery disease (CAD) 10
+1163: Acute Kidney Injury 10
+1164: Asthma 10
+1165: Alcoholism 10
+1166: Smoking 10
+1167: sleep apnea 10
+1168: skin ulcer 10
+1169: Chronic hepatitis 10
+1170: hyperlipidemia 10
+1171: hypothyroidism 10
+1172: Heart valve disorder 10
+1173: Low back pain 10
+1174: neuropathy 10
+1175: Psychotic disorder 10
+1176: Sepsis 10
+1177: Acute Respiratory failure 10
+1178: Gastroesophageal reflux disease 10
+1179: obesity 10
+1180: Inflammatory Bowel Disease 10
+1181: STEROIDS 10
+1182: Opioids 10
+1183: ANTIEPILEPTICS 10
+1184: Osteoarthritis 10
+1185: Osteoporosis 10
+1186: Urinary tract infectious 10
+1187: acetaminophen exposure 10
+1188: Anemia 10
+1189: Anxiety 10
+1190: HORMONAL CONTRACEPTIVES 10
+1191: Chronic kidney disease or end stage renal disease 10
+1192: Chronic obstructive pulmonary disease (COPD) 10
+1193: Type 1 diabetes and no prior specific nonT1DM diabetes 10
+1194: Type 2 Diabetes Mellitus with no type 1 or secondary DM 10
+1195: Dyspnea 10
+1196: Edema 10
+1197: Acute gastrointestinal bleeding 10
+1198: Hypertension 10
+1199: Pneumonia 10
+1200: Rheumatoid Arthritis 10
+1201: Antibiotics Aminoglycosides 10
+1202: Antibiotics Carbapenems 10
+1203: Antibiotics Cephalosporins 10
+1204: Antibiotics Fluoroquinolones 10
+1205: Antibiotics Glycopeptides and lipoglycopeptides 10
+1206: Antibiotics Macrolides 10
+1207: Antibiotics Monobactams 10
+1208: Antibiotics Oxazolidinones 10
+1209: Antibiotics Penicillins 10
+1210: Antibiotics Polypeptides 10
+1211: Antibiotics Rifamycins 10
+1212: Antibiotics Sulfonamides 10
+1213: Antibiotics Streptogramins 10
+1214: Antibiotics Tetracyclines 10
+1215: Any cancer (excl. prostate cancer and benign cancer) 10

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 2 were added.

-
1150: Emergency room only or Emergency room and inpatient visits (0Pe, 0Era)
-1151: [P] Autism
+
1150: Emergency room only or Emergency room and inpatient visits (0Pe, 0Era)
+1151: [P] Autism

Following cohorts were hidden: 325 were added. To retrieve use PhenotypeLibrary::getPhenotypeLog(showHidden = TRUE).

-
2: [W] COVID-19 diagnosis or SARS-CoV-2 test (1pos)
-15: [P][R] Exposure to viral disease 
-16: [W] Exposure to SARS-Cov 2 and coronavirus
-17: [P][R] Exposure to SARS-CoV-2 
-18: [P][R] Multisystem inflammatory syndrome (MIS) 
-22: [W] SARS-CoV-2 testing
-29: [W] Autoimmune condition (FP)
-35: [W] Chronic kidney disease (FP)
-39: [W] End stage renal disease (FP)
-41: [W] Chronic kidney disease broad (FP)
-42: [W] End stage renal disease broad (FP)
-44: [P][R] COVID-19 
-45: [W] COVID-19 diagnosis with SARS-Cov-2 test (-3d to 3d)
-46: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) within 3d
-47: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) (0neg) within 3d
-48: [W] COVID-19 diagnosis and SARS-CoV-2 test (0pos upto 3d, 1neg within 3d)
-51: [W] SARS-CoV-2 test positive result
-52: [W] SARS-CoV-2 test negative result
-53: [W] SARS-CoV-2 test positive or negative result - keep persons with positive
-57: [P][R] Bleeding 
-59: [W] COVID-19 diagnosis with no SARS-CoV-2 test
-60: [W] SARS-CoV-2 test positive and negative result
-62: [P][R] Seizure related finding 
-65: [W] Acute pancreatitis with inpatient admission
-66: [W] Acute renal failure with inpatient admission
-67: [W] Hepatic failure with inpatient admission
-68: [W] Heart failure with inpatient admission
-69: [W] Angioedema with inpatient admission
-86: [W] SARS-CoV-2 test positive or negative result
-87: [W] SARS-CoV-2 test
-100: [P][R] Alzheimer's disease
-189: [P][R] Right upper quadrant pain 
-190: [P][R] Swollen abdomen 
-226: [P][R] Drug reaction with eosinophilia and systemic symptoms 
-231: [P][R] Erythema multiforme 
-238: [P][R] Optic neuritis 
-241: [P][R] Urticaria 
-327: [P][R] Pharyngitis 
-330: [P][R] Abdominal bloating 
-339: [P][R] Low blood pressure 
-342: [P][R] Urinary incontinence
-348: [P][R] Blood in urine 
-350: [P][R] Hemoptysis
-352: [P][R] Inflamed tonsils 
-353: [P][R] Conjunctivitis 
-357: [P][R] Pulmonary edema 
-361: [P][R] Restless legs 
-363: [P][R] Joint stiffness 
-364: [P][R] Sleep disorder 
-368: [P][R] Sinusitis 
-369: [P][R] Allergic condition 
-374: [P][R] Drug dependence 
-376: [P][R] Bleeding skin 
-377: [P][R] Petechiae 
-378: [P][R] Purpuric disorder 
-380: [P][R] Jaundice 
-384: [P][R] Contact dermatitis 
-385: [P][R] Intertrigo 
-386: [P][R] Seborrheic dermatitis 
-387: [P][R] Photodermatitis 
-388: [P][R] Peripheral neuritis 
-396: [P][R] Osteoarthritis 
-397: [P][R] Hyperplasia of prostate 
-399: [P][R] Urolithiasis 
-400: [P][R] Malignant tumor of prostate 
-406: [P][R] Intellectual disability 
-407: [P][R] Hemorrhoids 
-415: [P][R] Erythema of skin 
-444: [P][R] Neck pain
-445: [P][R] Hypoglycemia
-446: [P][R] Eosinophilic esophagitis
-447: [P][R] Esophagitis
-448: [P][R] Dysphagia
-449: [P][R] Nausea
-450: [P][R] Constipation
-451: [P][R] Myasthenia gravis
-452: [P][R] Joint pain
-453: [P][R] Osteoarthritis
-454: [P][R] Dermatomyositis
-455: [P][R] Fetal growth restriction
-456: [P][R] Osteoporosis
-457: [P][R] Rheumatoid arthritis
-458: [P][R] Ulcerative colitis
-459: [P][R] Urinary tract infectious disease
-460: [P][R] Psoriasis with arthropathy
-461: [P][R] Erythema multiforme
-462: [P][R] Lichen planus
-463: [P][R] Sepsis
-464: [P][R] Myelofibrosis
-465: [P][R] Thyroiditis
-466: [P][R] Atopic dermatitis
-467: [P][R] Systemic sclerosis
-468: [P][R] Pityriasis rubra pilaris
-469: [P][R] Jaundice
-470: [P][R] Chronic lymphoid leukemia, disease
-471: [P][R] Vitiligo
-472: [P][R] Myelodysplastic syndrome (clinical)
-473: [P][R] Acute transverse myelitis
-474: [P][R] Pemphigoid
-475: [P][R] Psoriasis
-476: [P][R] Acute myeloid leukemia, disease
-477: [P][R] Hypothyroidism
-478: [P][R] Malignant melanoma of skin
-479: [P][R] Chilblains
-480: [P][R] Alopecia areata
-481: [P][R] Renal failure syndrome
-482: [P][R] Gastrointestinal hemorrhage
-483: [P][R] Biliary cirrhosis
-484: [P][R] End-stage renal disease
-485: [P][R] Low back pain
-486: [P][R] Premature rupture of membranes
-487: [P][R] Celiac disease
-488: [P][R] Diarrhea
-489: [P][R] Acute renal failure syndrome
-490: [P][R] Viral hepatitis C
-491: [P][R] Malignant tumor of urinary bladder
-492: [P][R] Cardiogenic shock
-493: [P][R] Malignant tumor of cervix
-494: [P][R] Primary malignant neoplasm of kidney
-495: [P][R] Acute pancreatitis
-496: [P][R] Abdominal pain
-497: [P][R] Autoimmune hepatitis
-498: [P][R] Toxic shock syndrome
-499: [P][R] Type 1 diabetes mellitus
-500: [P][R] Gastritis
-501: [P][R] Crohn's disease
-502: [P][R] Kidney stone
-503: [P][R] Type 2 diabetes mellitus
-504: [P][R] Sj?gren's syndrome
-505: [P][R] Cough
-506: [P][R] Chronic obstructive lung disease
-507: [P][R] Pneumonia
-508: [P][R] Allergic rhinitis
-509: [P][R] Systemic lupus erythematosus
-510: [P][R] Acute myocardial infarction
-511: [P][R] Dyspnea
-512: [P][R] Thromboangiitis obliterans
-513: [P][R] Atrial fibrillation
-514: [P][R] Granulomatosis with polyangiitis
-515: [P][R] Sleep apnea
-516: [P][R] Thrombotic microangiopathy
-517: [P][R] Acute febrile mucocutaneous lymph node syndrome
-518: [P][R] Myocarditis
-519: [P][R] Heart failure
-520: [P][R] Hypertensive disorder
-521: [P][R] Asthma
-522: [P][R] Coronary arteriosclerosis
-523: [P][R] Arteriosclerotic vascular disease
-524: [P][R] Migraine
-525: [P][R] Gastroesophageal reflux disease
-526: [P][R] Orthostatic hypotension
-527: [P][R] Acute respiratory failure
-528: [P][R] Polyarteritis nodosa
-529: [P][R] Cardiac arrest
-530: [P][R] Peripheral vascular disease
-531: [P][R] Angina pectoris
-532: [P][R] Heart disease
-533: [P][R] Otitis media
-534: [P][R] Transient cerebral ischemia
-535: [P][R] Acute disseminated encephalomyelitis
-536: [P][R] Age related macular degeneration
-537: [P][R] Sensorineural hearing loss
-538: [P][R] Paralytic syndrome
-539: [P][R] Multiple sclerosis
-540: [P][R] Optic neuritis
-541: [P][R] Idiopathic peripheral neuropathy
-542: [P][R] Cerebral hemorrhage
-543: [P][R] Seizure
-544: [P][R] Encephalitis
-545: [P][R] Headache
-546: [P][R] Retinal detachment
-547: [P][R] Retinal disorder
-549: [P][R] Epilepsy
-550: [P][R] Chronic inflammatory demyelinating polyradiculoneuropathy
-551: [P][R] Microcephaly
-552: [P][R] Parkinson's disease
-553: [P][R] Cerebrovascular accident
-554: [P][R] Cerebrovascular disease
-555: [P][R] Blood coagulation disorder
-556: [P][R] Amyloidosis
-557: [P][R] Angioedema
-558: [P][R] Hyperlipidemia
-559: [P][R] Thrombocytopenic disorder
-560: [P][R] Pancytopenia
-561: [P][R] Myasthenic syndrome due to another disorder
-562: [P][R] Edema
-563: [P][R] Obesity
-564: [P][R] Hidradenitis
-565: [P][R] Tuberculosis
-566: [P][R] Kaposi's sarcoma (clinical)
-567: [P][R] B-cell lymphoma (clinical)
-568: [P][R] Hyperkalemia
-569: [P][R] Systemic inflammatory response syndrome
-570: [P][R] Leukopenia
-571: [P][R] Schizophrenia
-572: [P][R] Psychotic disorder
-573: [P][R] Chronic pain
-574: [P][R] Narcolepsy
-575: [P][R] Behcet's syndrome
-576: [P][R] Bipolar disorder
-577: [P][R] Posttraumatic stress disorder
-578: [P][R] Insomnia
-579: [P][R] Ankylosing spondylitis
-580: [P][R] Respiratory syncytial virus infection
-581: [P][R] Multiple myeloma
-582: [P][R] Bleeding
-583: [P][R] Glaucoma
-584: [P][R] Fever
-585: [P][R] Hypokalemia
-586: [P][R] Opioid dependence
-587: [P][R] Opioid abuse
-588: [P][R] Attention deficit hyperactivity disorder
-589: [P][R] Pre-eclampsia
-590: [P][R] Human immunodeficiency virus infection
-591: [P][R] Autism spectrum disorder
-592: [P][R] Anemia
-593: [P][R] Paralysis
-594: [P][R] Depressive disorder
-595: [P][R] Pulmonary embolism
-596: [P][R] Gout
-597: [P][R] Takayasu's disease
-598: [P][R] Methicillin resistant Staphylococcus aureus infection
-599: [P][R] Anaphylaxis
-600: [P][R] Open-angle glaucoma
-601: [P][R] Vomiting
-602: [P][R] Anxiety
-603: [P][R] Human papilloma virus infection
-604: [P][R] Cranial nerve disorder
-605: [P][R] Muscle pain
-606: [P][R] Stillbirth
-607: [P][R] Malignant tumor of stomach
-608: [P][R] Malignant neoplastic disease
-609: [P][R] Cerebral infarction
-610: [P][R] Eclampsia
-611: [P][R] Diabetic ketoacidosis
-612: [P][R] Acute tubular necrosis
-613: [P][R] Tachycardia
-614: [P][R] Venous thrombosis
-615: [P][R] Herpes simplex
-616: [P][R] Acute arthritis
-617: [P][R] Monoclonal gammopathy (clinical)
-618: [P][R] Pulmonary arterial hypertension
-619: [P][R] Gestational diabetes mellitus
-620: [P][R] Uveitis
-621: [P][R] Renal impairment
-622: [P][R] Non-Hodgkin's lymphoma (clinical)
-623: [P][R] Motor neuropathy with multiple conduction block
-624: [P][R] Primary sclerosing cholangitis
-625: [P][R] Pustular psoriasis
-626: [P][R] Cirrhosis of liver
-627: [P][R] Miscarriage
-628: [P][R] Fisher's syndrome
-629: [P][R] Inflammatory bowel disease
-630: [P][R] Facial palsy
-631: [P][R] Livebirth
-632: [P][R] Antiphospholipid syndrome
-633: [P][R] Waldenstr?m macroglobulinemia
-634: [P][R] Immunoglobulin A vasculitis
-635: [P][R] Ventricular tachycardia
-636: [P][R] Malignant tumor of breast
-637: [P][R] Peripheral ischemia
-638: [P][R] Neoplasm of thyroid gland
-639: [P][R] Deep venous thrombosis
-640: [P][R] Vasculitis
-641: [P][R] Pericarditis
-642: [P][R] Immune reconstitution syndrome
-643: [P][R] Follicular non-Hodgkin's lymphoma
-644: [P][R] Malignant tumor of prostate
-645: [P][R] Guillain-Barr? syndrome
-646: [P][R] Bradycardia
-647: [P][R] Retinopathy due to diabetes mellitus
-648: [P][R] Malignant tumor of colon
-649: [P][R] Malignant tumor of esophagus
-650: [P][R] Malignant tumor of ovary
-651: [P][R] Dementia
-652: [P][R] Vasculitis of the skin
-653: [P][R] Loss of sense of smell
-654: [P][R] Ischemic heart disease
-655: [P][R] Aseptic meningitis
-656: [P][R] Fatigue
-657: [P][R] Paresthesia
-658: [P][R] Hepatic failure
-659: [P][R] Malignant neoplasm of liver
-660: [P][R] Juvenile rheumatoid arthritis
-661: [P][R] Respiratory failure
-662: [P][R] Diverticulitis of large intestine
-663: [P][R] Influenza
-664: [P][R] Malaise
-665: [P][R] Suicidal thoughts
-666: [P][R] Type B viral hepatitis
-667: [P][R] Guttate psoriasis
-668: [P][R] SLE glomerulonephritis syndrome
-669: [P][R] Schizoaffective disorder
-670: [P][R] Temporal arteritis
-671: [P][R] Pregnant
-672: [P][R] Sense of smell impaired
-673: [P][R] Primary malignant neoplasm of respiratory tract
-674: [P][R] Degeneration of retina
-675: [P][R] Pulmonary hypertension
-676: [P][R] Necrosis of artery
-677: [P][R] Preterm labor with preterm delivery
-678: [P][R] COVID-19
-679: [P][R] Takotsubo cardiomyopathy
-680: [P][R] Mantle cell lymphoma
-681: [P][R] Malignant neoplasm of anorectum
-682: [P][R] Marginal zone lymphoma
-683: [P][R] Antineutrophil cytoplasmic antibody positive vasculitis
-684: [P][R] Sensory disorder of smell and/or taste
-685: [P][R] Cardiac arrhythmia
-686: [P][R] Fracture of bone of hip region
-687: [P][R] Chronic kidney disease
-688: [P][R] Death
-689: [P][R] Newborn death
-690: [P][R] Suicide
-695: [P][R] Optic nerve glioma
-696: [P][R] Neurofibromatosis type 2
-697: [P][R] Neurofibromatosis type 1
-698: [P][R] Neurofibromatosis syndrome
-699: [P][R] Major Depressive Disorder
-701: [P][R] Ascites
-709: [P][R] Chronic liver disease
-711: [P][R] Transplanted liver present
-714: [P][R] Endometriosis (clinical)
-794: [W] Hemorrhage of digestive system
+
2: [W] COVID-19 diagnosis or SARS-CoV-2 test (1pos)
+15: [P][R] Exposure to viral disease 
+16: [W] Exposure to SARS-Cov 2 and coronavirus
+17: [P][R] Exposure to SARS-CoV-2 
+18: [P][R] Multisystem inflammatory syndrome (MIS) 
+22: [W] SARS-CoV-2 testing
+29: [W] Autoimmune condition (FP)
+35: [W] Chronic kidney disease (FP)
+39: [W] End stage renal disease (FP)
+41: [W] Chronic kidney disease broad (FP)
+42: [W] End stage renal disease broad (FP)
+44: [P][R] COVID-19 
+45: [W] COVID-19 diagnosis with SARS-Cov-2 test (-3d to 3d)
+46: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) within 3d
+47: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) (0neg) within 3d
+48: [W] COVID-19 diagnosis and SARS-CoV-2 test (0pos upto 3d, 1neg within 3d)
+51: [W] SARS-CoV-2 test positive result
+52: [W] SARS-CoV-2 test negative result
+53: [W] SARS-CoV-2 test positive or negative result - keep persons with positive
+57: [P][R] Bleeding 
+59: [W] COVID-19 diagnosis with no SARS-CoV-2 test
+60: [W] SARS-CoV-2 test positive and negative result
+62: [P][R] Seizure related finding 
+65: [W] Acute pancreatitis with inpatient admission
+66: [W] Acute renal failure with inpatient admission
+67: [W] Hepatic failure with inpatient admission
+68: [W] Heart failure with inpatient admission
+69: [W] Angioedema with inpatient admission
+86: [W] SARS-CoV-2 test positive or negative result
+87: [W] SARS-CoV-2 test
+100: [P][R] Alzheimer's disease
+189: [P][R] Right upper quadrant pain 
+190: [P][R] Swollen abdomen 
+226: [P][R] Drug reaction with eosinophilia and systemic symptoms 
+231: [P][R] Erythema multiforme 
+238: [P][R] Optic neuritis 
+241: [P][R] Urticaria 
+327: [P][R] Pharyngitis 
+330: [P][R] Abdominal bloating 
+339: [P][R] Low blood pressure 
+342: [P][R] Urinary incontinence
+348: [P][R] Blood in urine 
+350: [P][R] Hemoptysis
+352: [P][R] Inflamed tonsils 
+353: [P][R] Conjunctivitis 
+357: [P][R] Pulmonary edema 
+361: [P][R] Restless legs 
+363: [P][R] Joint stiffness 
+364: [P][R] Sleep disorder 
+368: [P][R] Sinusitis 
+369: [P][R] Allergic condition 
+374: [P][R] Drug dependence 
+376: [P][R] Bleeding skin 
+377: [P][R] Petechiae 
+378: [P][R] Purpuric disorder 
+380: [P][R] Jaundice 
+384: [P][R] Contact dermatitis 
+385: [P][R] Intertrigo 
+386: [P][R] Seborrheic dermatitis 
+387: [P][R] Photodermatitis 
+388: [P][R] Peripheral neuritis 
+396: [P][R] Osteoarthritis 
+397: [P][R] Hyperplasia of prostate 
+399: [P][R] Urolithiasis 
+400: [P][R] Malignant tumor of prostate 
+406: [P][R] Intellectual disability 
+407: [P][R] Hemorrhoids 
+415: [P][R] Erythema of skin 
+444: [P][R] Neck pain
+445: [P][R] Hypoglycemia
+446: [P][R] Eosinophilic esophagitis
+447: [P][R] Esophagitis
+448: [P][R] Dysphagia
+449: [P][R] Nausea
+450: [P][R] Constipation
+451: [P][R] Myasthenia gravis
+452: [P][R] Joint pain
+453: [P][R] Osteoarthritis
+454: [P][R] Dermatomyositis
+455: [P][R] Fetal growth restriction
+456: [P][R] Osteoporosis
+457: [P][R] Rheumatoid arthritis
+458: [P][R] Ulcerative colitis
+459: [P][R] Urinary tract infectious disease
+460: [P][R] Psoriasis with arthropathy
+461: [P][R] Erythema multiforme
+462: [P][R] Lichen planus
+463: [P][R] Sepsis
+464: [P][R] Myelofibrosis
+465: [P][R] Thyroiditis
+466: [P][R] Atopic dermatitis
+467: [P][R] Systemic sclerosis
+468: [P][R] Pityriasis rubra pilaris
+469: [P][R] Jaundice
+470: [P][R] Chronic lymphoid leukemia, disease
+471: [P][R] Vitiligo
+472: [P][R] Myelodysplastic syndrome (clinical)
+473: [P][R] Acute transverse myelitis
+474: [P][R] Pemphigoid
+475: [P][R] Psoriasis
+476: [P][R] Acute myeloid leukemia, disease
+477: [P][R] Hypothyroidism
+478: [P][R] Malignant melanoma of skin
+479: [P][R] Chilblains
+480: [P][R] Alopecia areata
+481: [P][R] Renal failure syndrome
+482: [P][R] Gastrointestinal hemorrhage
+483: [P][R] Biliary cirrhosis
+484: [P][R] End-stage renal disease
+485: [P][R] Low back pain
+486: [P][R] Premature rupture of membranes
+487: [P][R] Celiac disease
+488: [P][R] Diarrhea
+489: [P][R] Acute renal failure syndrome
+490: [P][R] Viral hepatitis C
+491: [P][R] Malignant tumor of urinary bladder
+492: [P][R] Cardiogenic shock
+493: [P][R] Malignant tumor of cervix
+494: [P][R] Primary malignant neoplasm of kidney
+495: [P][R] Acute pancreatitis
+496: [P][R] Abdominal pain
+497: [P][R] Autoimmune hepatitis
+498: [P][R] Toxic shock syndrome
+499: [P][R] Type 1 diabetes mellitus
+500: [P][R] Gastritis
+501: [P][R] Crohn's disease
+502: [P][R] Kidney stone
+503: [P][R] Type 2 diabetes mellitus
+504: [P][R] Sj?gren's syndrome
+505: [P][R] Cough
+506: [P][R] Chronic obstructive lung disease
+507: [P][R] Pneumonia
+508: [P][R] Allergic rhinitis
+509: [P][R] Systemic lupus erythematosus
+510: [P][R] Acute myocardial infarction
+511: [P][R] Dyspnea
+512: [P][R] Thromboangiitis obliterans
+513: [P][R] Atrial fibrillation
+514: [P][R] Granulomatosis with polyangiitis
+515: [P][R] Sleep apnea
+516: [P][R] Thrombotic microangiopathy
+517: [P][R] Acute febrile mucocutaneous lymph node syndrome
+518: [P][R] Myocarditis
+519: [P][R] Heart failure
+520: [P][R] Hypertensive disorder
+521: [P][R] Asthma
+522: [P][R] Coronary arteriosclerosis
+523: [P][R] Arteriosclerotic vascular disease
+524: [P][R] Migraine
+525: [P][R] Gastroesophageal reflux disease
+526: [P][R] Orthostatic hypotension
+527: [P][R] Acute respiratory failure
+528: [P][R] Polyarteritis nodosa
+529: [P][R] Cardiac arrest
+530: [P][R] Peripheral vascular disease
+531: [P][R] Angina pectoris
+532: [P][R] Heart disease
+533: [P][R] Otitis media
+534: [P][R] Transient cerebral ischemia
+535: [P][R] Acute disseminated encephalomyelitis
+536: [P][R] Age related macular degeneration
+537: [P][R] Sensorineural hearing loss
+538: [P][R] Paralytic syndrome
+539: [P][R] Multiple sclerosis
+540: [P][R] Optic neuritis
+541: [P][R] Idiopathic peripheral neuropathy
+542: [P][R] Cerebral hemorrhage
+543: [P][R] Seizure
+544: [P][R] Encephalitis
+545: [P][R] Headache
+546: [P][R] Retinal detachment
+547: [P][R] Retinal disorder
+549: [P][R] Epilepsy
+550: [P][R] Chronic inflammatory demyelinating polyradiculoneuropathy
+551: [P][R] Microcephaly
+552: [P][R] Parkinson's disease
+553: [P][R] Cerebrovascular accident
+554: [P][R] Cerebrovascular disease
+555: [P][R] Blood coagulation disorder
+556: [P][R] Amyloidosis
+557: [P][R] Angioedema
+558: [P][R] Hyperlipidemia
+559: [P][R] Thrombocytopenic disorder
+560: [P][R] Pancytopenia
+561: [P][R] Myasthenic syndrome due to another disorder
+562: [P][R] Edema
+563: [P][R] Obesity
+564: [P][R] Hidradenitis
+565: [P][R] Tuberculosis
+566: [P][R] Kaposi's sarcoma (clinical)
+567: [P][R] B-cell lymphoma (clinical)
+568: [P][R] Hyperkalemia
+569: [P][R] Systemic inflammatory response syndrome
+570: [P][R] Leukopenia
+571: [P][R] Schizophrenia
+572: [P][R] Psychotic disorder
+573: [P][R] Chronic pain
+574: [P][R] Narcolepsy
+575: [P][R] Behcet's syndrome
+576: [P][R] Bipolar disorder
+577: [P][R] Posttraumatic stress disorder
+578: [P][R] Insomnia
+579: [P][R] Ankylosing spondylitis
+580: [P][R] Respiratory syncytial virus infection
+581: [P][R] Multiple myeloma
+582: [P][R] Bleeding
+583: [P][R] Glaucoma
+584: [P][R] Fever
+585: [P][R] Hypokalemia
+586: [P][R] Opioid dependence
+587: [P][R] Opioid abuse
+588: [P][R] Attention deficit hyperactivity disorder
+589: [P][R] Pre-eclampsia
+590: [P][R] Human immunodeficiency virus infection
+591: [P][R] Autism spectrum disorder
+592: [P][R] Anemia
+593: [P][R] Paralysis
+594: [P][R] Depressive disorder
+595: [P][R] Pulmonary embolism
+596: [P][R] Gout
+597: [P][R] Takayasu's disease
+598: [P][R] Methicillin resistant Staphylococcus aureus infection
+599: [P][R] Anaphylaxis
+600: [P][R] Open-angle glaucoma
+601: [P][R] Vomiting
+602: [P][R] Anxiety
+603: [P][R] Human papilloma virus infection
+604: [P][R] Cranial nerve disorder
+605: [P][R] Muscle pain
+606: [P][R] Stillbirth
+607: [P][R] Malignant tumor of stomach
+608: [P][R] Malignant neoplastic disease
+609: [P][R] Cerebral infarction
+610: [P][R] Eclampsia
+611: [P][R] Diabetic ketoacidosis
+612: [P][R] Acute tubular necrosis
+613: [P][R] Tachycardia
+614: [P][R] Venous thrombosis
+615: [P][R] Herpes simplex
+616: [P][R] Acute arthritis
+617: [P][R] Monoclonal gammopathy (clinical)
+618: [P][R] Pulmonary arterial hypertension
+619: [P][R] Gestational diabetes mellitus
+620: [P][R] Uveitis
+621: [P][R] Renal impairment
+622: [P][R] Non-Hodgkin's lymphoma (clinical)
+623: [P][R] Motor neuropathy with multiple conduction block
+624: [P][R] Primary sclerosing cholangitis
+625: [P][R] Pustular psoriasis
+626: [P][R] Cirrhosis of liver
+627: [P][R] Miscarriage
+628: [P][R] Fisher's syndrome
+629: [P][R] Inflammatory bowel disease
+630: [P][R] Facial palsy
+631: [P][R] Livebirth
+632: [P][R] Antiphospholipid syndrome
+633: [P][R] Waldenstr?m macroglobulinemia
+634: [P][R] Immunoglobulin A vasculitis
+635: [P][R] Ventricular tachycardia
+636: [P][R] Malignant tumor of breast
+637: [P][R] Peripheral ischemia
+638: [P][R] Neoplasm of thyroid gland
+639: [P][R] Deep venous thrombosis
+640: [P][R] Vasculitis
+641: [P][R] Pericarditis
+642: [P][R] Immune reconstitution syndrome
+643: [P][R] Follicular non-Hodgkin's lymphoma
+644: [P][R] Malignant tumor of prostate
+645: [P][R] Guillain-Barr? syndrome
+646: [P][R] Bradycardia
+647: [P][R] Retinopathy due to diabetes mellitus
+648: [P][R] Malignant tumor of colon
+649: [P][R] Malignant tumor of esophagus
+650: [P][R] Malignant tumor of ovary
+651: [P][R] Dementia
+652: [P][R] Vasculitis of the skin
+653: [P][R] Loss of sense of smell
+654: [P][R] Ischemic heart disease
+655: [P][R] Aseptic meningitis
+656: [P][R] Fatigue
+657: [P][R] Paresthesia
+658: [P][R] Hepatic failure
+659: [P][R] Malignant neoplasm of liver
+660: [P][R] Juvenile rheumatoid arthritis
+661: [P][R] Respiratory failure
+662: [P][R] Diverticulitis of large intestine
+663: [P][R] Influenza
+664: [P][R] Malaise
+665: [P][R] Suicidal thoughts
+666: [P][R] Type B viral hepatitis
+667: [P][R] Guttate psoriasis
+668: [P][R] SLE glomerulonephritis syndrome
+669: [P][R] Schizoaffective disorder
+670: [P][R] Temporal arteritis
+671: [P][R] Pregnant
+672: [P][R] Sense of smell impaired
+673: [P][R] Primary malignant neoplasm of respiratory tract
+674: [P][R] Degeneration of retina
+675: [P][R] Pulmonary hypertension
+676: [P][R] Necrosis of artery
+677: [P][R] Preterm labor with preterm delivery
+678: [P][R] COVID-19
+679: [P][R] Takotsubo cardiomyopathy
+680: [P][R] Mantle cell lymphoma
+681: [P][R] Malignant neoplasm of anorectum
+682: [P][R] Marginal zone lymphoma
+683: [P][R] Antineutrophil cytoplasmic antibody positive vasculitis
+684: [P][R] Sensory disorder of smell and/or taste
+685: [P][R] Cardiac arrhythmia
+686: [P][R] Fracture of bone of hip region
+687: [P][R] Chronic kidney disease
+688: [P][R] Death
+689: [P][R] Newborn death
+690: [P][R] Suicide
+695: [P][R] Optic nerve glioma
+696: [P][R] Neurofibromatosis type 2
+697: [P][R] Neurofibromatosis type 1
+698: [P][R] Neurofibromatosis syndrome
+699: [P][R] Major Depressive Disorder
+701: [P][R] Ascites
+709: [P][R] Chronic liver disease
+711: [P][R] Transplanted liver present
+714: [P][R] Endometriosis (clinical)
+794: [W] Hemorrhage of digestive system

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 14 were added.

-
1093: [P] Abdominal Aoritc Aneurysm repair - post op new Afib (any)
-1094: [P] Lower Extremity Bypass - post op new Afib (any)
-1095: [P] Carotid Endarterectomy - post op new Afib (any)
-1096: [P] Lung Resection - post op new Afib (any)
-1097: [P] Esophagectomy - post op new Afib (any)
-1098: [P] Pancreatectomy - post op new Afib (any)
-1099: [P] Colectomy - post op new Afib (any)
-1100: [P] Cystectomy - post op new Afib (any)
-1101: [P] Nephrectomy - post op new Afib (any)
-1102: [P] Coronary Artery Bypass Graft Surgery - post op new Afib (any)
-1103: [P] Aortic or Mitral Valve Repair or Replacement - post op new Afib (any)
-1104: [P] RBC Transfusion (adult relevant, no auto 1yr clean window)
-1105: [P] Clostridium difficile - first episode
-1106: [P] Non-Emergent Major Non Cardiac Surgery no prior Opioid
+
1093: [P] Abdominal Aoritc Aneurysm repair - post op new Afib (any)
+1094: [P] Lower Extremity Bypass - post op new Afib (any)
+1095: [P] Carotid Endarterectomy - post op new Afib (any)
+1096: [P] Lung Resection - post op new Afib (any)
+1097: [P] Esophagectomy - post op new Afib (any)
+1098: [P] Pancreatectomy - post op new Afib (any)
+1099: [P] Colectomy - post op new Afib (any)
+1100: [P] Cystectomy - post op new Afib (any)
+1101: [P] Nephrectomy - post op new Afib (any)
+1102: [P] Coronary Artery Bypass Graft Surgery - post op new Afib (any)
+1103: [P] Aortic or Mitral Valve Repair or Replacement - post op new Afib (any)
+1104: [P] RBC Transfusion (adult relevant, no auto 1yr clean window)
+1105: [P] Clostridium difficile - first episode
+1106: [P] Non-Emergent Major Non Cardiac Surgery no prior Opioid
@@ -833,343 +880,343 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 20 were added.

-
1072: [P] CMV Anterior Uveitis
-1073: [P] Serious Infection, opportunistic infections and other infections of interest event
-1074: [P] Serious Infection
-1075: [P] FDA AESI Narcolepsy
-1076: [P] FDA AESI Anaphylaxis
-1077: [P] FDA AESI Anaphylaxis v2
-1078: [P] FDA AESI Bells Palsy
-1079: [P] FDA AESI Encephalomyelitis
-1080: [P] FDA AESI Guillain Barre Syndrome
-1081: [P] FDA AESI Acute Myocardial Infarction
-1082: [P] FDA AESI Myocarditis Pericarditis
-1083: [P] FDA AESI Immune Thrombocytopenia (ITP)
-1084: [P] FDA AESI Disseminated Intravascular Coagulation
-1085: [P] FDA AESI Appendicitis
-1086: [P] FDA AESI Transverse Myelitis
-1087: [P] FDA AESI Hemorrhagic Stroke
-1088: [P] FDA AESI Deep Vein Thrombosis (DVT)
-1089: [P] FDA AESI Non-hemorrhagic Stroke
-1090: [P] FDA AESI Pulmonary Embolism
-1091: [P] FDA AESI Thrombosis with Thrombocytopenia (TWT)
+
1072: [P] CMV Anterior Uveitis
+1073: [P] Serious Infection, opportunistic infections and other infections of interest event
+1074: [P] Serious Infection
+1075: [P] FDA AESI Narcolepsy
+1076: [P] FDA AESI Anaphylaxis
+1077: [P] FDA AESI Anaphylaxis v2
+1078: [P] FDA AESI Bells Palsy
+1079: [P] FDA AESI Encephalomyelitis
+1080: [P] FDA AESI Guillain Barre Syndrome
+1081: [P] FDA AESI Acute Myocardial Infarction
+1082: [P] FDA AESI Myocarditis Pericarditis
+1083: [P] FDA AESI Immune Thrombocytopenia (ITP)
+1084: [P] FDA AESI Disseminated Intravascular Coagulation
+1085: [P] FDA AESI Appendicitis
+1086: [P] FDA AESI Transverse Myelitis
+1087: [P] FDA AESI Hemorrhagic Stroke
+1088: [P] FDA AESI Deep Vein Thrombosis (DVT)
+1089: [P] FDA AESI Non-hemorrhagic Stroke
+1090: [P] FDA AESI Pulmonary Embolism
+1091: [P] FDA AESI Thrombosis with Thrombocytopenia (TWT)

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 37 were added.

-
1035: [P] New users of Thiazide diuretics
-1036: [P] New users of Beta blockers
-1037: [P] New users of SGLT2 inhibitor
-1038: [P] New users of GLP-1 receptor antagonists
-1039: [P] New users of DPP-4 inhibitors
-1040: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors
-1041: [P] New users of JAK inhibitors
-1042: [P] New users of IL-23 inhibitors
-1043: [P] New users of Fluoroquinolone systemic
-1044: [P] New users of Cephalosporin systemetic
-1045: [P] New users of Trimethoprim systemetic
-1046: [P] New users of Thiazide diuretics nested in essential hypertension
-1047: [P] New users of dihydropyridine calcium channel blockers nested in essential hypertension
-1048: [P] New users of dihydropyridine calcium channel blockers
-1049: [P] New users of Beta blockers nested in essential hypertension
-1050: [P] New users of Beta blockers nested in Left Heart Failure
-1051: [P] New users of SGLT2 inhibitor nested in Left Heart Failure
-1052: [P] New users of Beta blockers nested in Acute Myocardial Infarction
-1053: [P] New users of GLP-1 receptor antagonists nested in Type 2 diabetes mellitus
-1054: [P] New users of SGLT2 inhibitor nested in Type 2 diabetes mellitus
-1055: [P] New users of DPP-4 inhibitors nested in Type 2 diabetes mellitus
-1056: [P] New users of GLP-1 receptor antagonists nested in obesity
-1057: [P] New users of IL-23 inhibitors nested in Plaque psoriasis
-1058: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Plaque psoriasis
-1059: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Psoriatic Arthritis
-1060: [P] New users of Fluoroquinolone systemic nested in Urinary Tract Infection
-1061: [P] New users of Cephalosporin systemetic nested in Urinary Tract Infection
-1062: [P] New users of Trimethoprim systemetic nested in Urinary Tract Infection
-1063: [P] New users of Fluoroquinolone systemic nested in Acute Typical Pneumonia
-1064: [P] New users of Cephalosporin systemetic nested in Acute Typical Pneumonia
-1065: [P] New users of Trimethoprim systemetic nested in Acute Typical Pneumonia
-1066: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Rheumatoid arthritis
-1067: [P] New users of JAK inhibitors nested in Ulcerative colitis
-1068: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Ulcerative colitis
-1069: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Crohns disease
-1070: [P] New users of JAK inhibitors nested in Rheumatoid arthritis
-1071: [P] persons at risk at start of year 2012-2022 with 365d prior observation
+
1035: [P] New users of Thiazide diuretics
+1036: [P] New users of Beta blockers
+1037: [P] New users of SGLT2 inhibitor
+1038: [P] New users of GLP-1 receptor antagonists
+1039: [P] New users of DPP-4 inhibitors
+1040: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors
+1041: [P] New users of JAK inhibitors
+1042: [P] New users of IL-23 inhibitors
+1043: [P] New users of Fluoroquinolone systemic
+1044: [P] New users of Cephalosporin systemetic
+1045: [P] New users of Trimethoprim systemetic
+1046: [P] New users of Thiazide diuretics nested in essential hypertension
+1047: [P] New users of dihydropyridine calcium channel blockers nested in essential hypertension
+1048: [P] New users of dihydropyridine calcium channel blockers
+1049: [P] New users of Beta blockers nested in essential hypertension
+1050: [P] New users of Beta blockers nested in Left Heart Failure
+1051: [P] New users of SGLT2 inhibitor nested in Left Heart Failure
+1052: [P] New users of Beta blockers nested in Acute Myocardial Infarction
+1053: [P] New users of GLP-1 receptor antagonists nested in Type 2 diabetes mellitus
+1054: [P] New users of SGLT2 inhibitor nested in Type 2 diabetes mellitus
+1055: [P] New users of DPP-4 inhibitors nested in Type 2 diabetes mellitus
+1056: [P] New users of GLP-1 receptor antagonists nested in obesity
+1057: [P] New users of IL-23 inhibitors nested in Plaque psoriasis
+1058: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Plaque psoriasis
+1059: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Psoriatic Arthritis
+1060: [P] New users of Fluoroquinolone systemic nested in Urinary Tract Infection
+1061: [P] New users of Cephalosporin systemetic nested in Urinary Tract Infection
+1062: [P] New users of Trimethoprim systemetic nested in Urinary Tract Infection
+1063: [P] New users of Fluoroquinolone systemic nested in Acute Typical Pneumonia
+1064: [P] New users of Cephalosporin systemetic nested in Acute Typical Pneumonia
+1065: [P] New users of Trimethoprim systemetic nested in Acute Typical Pneumonia
+1066: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Rheumatoid arthritis
+1067: [P] New users of JAK inhibitors nested in Ulcerative colitis
+1068: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Ulcerative colitis
+1069: [P] New users of Tumor Necrosis Factor alpha (TNFa) inhibitors nested in Crohns disease
+1070: [P] New users of JAK inhibitors nested in Rheumatoid arthritis
+1071: [P] persons at risk at start of year 2012-2022 with 365d prior observation

This release includes the bulk of the cohorts submitted to the OHDSI PhenotypeLibrary in the month of September 2023, as part of the push for HowOften.

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 252 were added.

-
311: [P] Parasomnia
-742: [P] Parasomnia or Sleep dysfunction with arousal disturbance
-743: [P] Diabetic ketoacidosis IP-ER (SNOMED concept)
-744: [P] Pulmonary Hypertension
-745: [P] Inflammatory Bowel Disease
-746: [P] Chronic Thromboembolic Pulmonary Hypertension
-747: [P] Pulmonary Arterial Hypertension
-748: [P] Psoriatic arthritis
-749: [P] Plaque Psoriasis
-750: [P] Pulmonary hypertension associated with left heart disease (WHO Group 2)
-751: [P] Pulmonary hypertension associated with lung diseases and or hypoxia (WHO Group 3)
-752: [P] Firearm Accidents (FA)
-753: [P] Motor Vehicle Accidents (MVA)
-754: [P] Down Syndrome
-755: [P] Non-infectious uveitis and iridocyclitis
-756: [P] Cystic Fibrosis
-757: [P] Concomitant TNF - alpha Inhibitors and IL23 Inhibitors - GE 30D overlap
-759: [P] Concomitant TNF - alpha Inhibitors and IL12_23 Inhibitors - GE 30D overlap
-760: [P] Concomitant IL 23 Inhibitors and IL12_23 Inhibitors - GE 30D overlap
-761: [P] Pulmonary arterial hypertension with Prior Left Heart or Vice Versa
-762: [P] Endothelin receptor antagonists
-763: [P] Phosphodiesterase 5 inhibitors and guanylate cyclase stimulators
-764: [P] Prostacyclin analogues and prostacyclin receptor agonists
-765: [P] Earliest event of Left Heart Failure
-766: [P] Earliest event of Right Heart Failure
-767: [P] Earliest event of Sarcoidosis
-768: [P] Earliest event of Sickle Cell Anemia
-769: [P] Scleroderma, first occurrence
-770: [P] Essential Hypertension, first occurrence
-771: [P] Pulmonary Hypertension (Group 2 Left heart disease, encompassing)
-772: [P] Pulmonary Hypertension (Group 3 Chronic lung disease, encompassing)
-773: [P] Congenital Heart Disease
-774: [P] Portal Hypertension, first occurrence
-775: [P] First Inflammatory Bowel Disease
-776: [P] Antisynthetase syndrome
-777: [P] Mixed connective tissue disease
-778: [P] Undifferentiated connective tissue disease
-779: [P] Overlap syndrome
-780: [P] Raynaud?s disease or Raynaud's phenomenon
-781: [P] Antiphospholipid syndrome
-782: [P] CTEPH Prevalent (with Echo or RHC) with 2nd dx code 31-365 days after first dx
-783: [P] Pulmonary endarterectomy
-784: [P] Balloon Pulmonary Angioplasty
-785: [P] Skin Burns
-786: [P] Non-small cell lung cancer (NSCLC)
-787: [P] Lung cancer
-788: [P] Breast cancer
-789: [P] Glioblastoma multiforme (GBM)
-790: [P] Colorectal Cancer
-791: [P] Multiple Myeloma
-792: [P] Metastatic Hormone-Sensitive Prostate Cancer Synchronous
-793: [P] Metastatic Hormone-Sensitive Prostate Cancer Metachronus
-794: COPY OF [P][R] Bleeding
-795: [P] Antineoplastic drugs against colorectal cancer
-796: [P] Potential curative surgery for colorectal cancer
-797: [P] Radiotherapy against colorectal cancer
-798: [P] Primary adenocarcinoma of the colon or rectum
-802: [P] Acute Respiratory Failure 2
-803: [P] Fascial dehiscence and evisceration
-804: [P] Anastomotic leak or dehiscence
-805: [P] Intestinal obstruction (broad)
-806: [P] Intraabdominal abscess
-807: [P] Perioperative aspiration
-808: [P] Postoperative hemorrhage
-809: [P] Surgical wound infection (narrow)
-810: [P] Distant metastasis following colorectal cancer (wide)
-811: [P] Local recurrence after colorectal cancer
-812: [P] Primary adenocarcinoma of the colon or rectum, MSI-H or dMMR, no surgery or oncological treatment
-813: [P] Primary adenocarcinoma of the colon or rectum treated with potentially curative surgery
-814: [P] Primary adenocarcinoma of the colon or rectum, no curative intended surgery and oncological treatment
-817: [P] Primary adenocarcinoma of the colon or rectum, no curative intended surgery and oncological treatment2
-818: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR
-819: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR, treated with curative intended surgery
-820: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR, oncological treatment, no curative surgery
-821: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR, no surgery or oncological treatment
-822: [P] Primary adenocarcinoma of colon or rectum, MSI-H or dMMR, surgical treatment
-823: [P] Primary adenocarcinoma of colon or rectum, MSI-H or dMMR, oncological treatment no surgery
-824: [P] Primary adenocarcinoma of colon or rectum,  MSI-H or dMMR
-825: [P] Primary adenocarcinoma of colon
-826: [P] Primary adenocarcinoma of colon, no surgery or oncological treatment
-827: [P] Primary adenocarcinoma of colon surgical treatment
-828: [P] Primary adenocarcinoma of colon oncological treatment, no surgery
-829: [P] Primary adenocarcinoma of colon, MSI-L, MSI-indeterminate, MSS or pMMR
-830: [P] Primary adenocarcinoma of colon, MSI-L, MSI-indeterminate, MSS or pMMR, surgically treated
-831: [P] Primary adenocarcinoma of colon MSI-L, MSI-indeterminate, MSS or pMMR, oncological treatment, no surgery
-832: [P] Primary adenocarcinoma of colon MSI-L, MSI-indeterminate, MSS or pMMR, no surgery or oncological treatment
-833: [P] Primary adenocarcinoma of colon MSI-H or dMMR
-834: [P] Primary adenocarcinoma of colon MSI-H or dMMR, surgical treatment
-835: [P] Primary adenocarcinoma of colon MSI-H or dMMR, oncological treatment, no surgery
-836: [P] Primary adenocarcinoma of colon MSI-H or dMMR, no surgery or oncological treatment
-837: [P] Primary adenocarcinoma of rectum
-838: [P] Primary adenocarcinoma of rectum MSI-H or dMMR
-839: [P] Primary adenocarcinoma of rectum, MSI-H or dMMR, no surgery or oncological treatment
-840: [P] Primary adenocarcinoma of rectum MSI-H or dMMR, oncological treatment, no surgery
-841: [P] Primary adenocarcinoma of rectum, MSI-H or dMMR, surgical treatment
-842: [P] Primary adenocarcinoma of rectum, MSI-L, MSI-indeterminate, MSS or pMMR
-843: [P] Primary adenocarcinoma of rectum MSI-L, MSI-indeterminate, MSS or pMMR, oncological treatment,  no surgery
-844: [P] Primary adenocarcinoma of rectum MSI-L, MSI-indeterminate, MSS or pMMR, no surgery and no oncological treatment
-845: [P] Primary adenocarcinoma of rectum MSI-L, MSI-indeterminate, MSS or pMMR, treated with potentially curative surgery
-846: [P] Primary adenocarcinoma of rectum oncological treatment, no surgery
-847: [P] Primary adenocarcinoma of rectum surgical treatment
-848: [P] Primary adenocarcinoma of rectum, no surgery or oncological treatment
-850: [P] Intestinal obstruction (broad 2)
-851: [P] Intraabdominal obstruction (broad)
-852: [P] Surgical wound infection (broad)
-854: [P] Distant metastasis following colorectal cancer (medium)
-855: [P] Distant metastasis following colorectal cancer (narrow)
-856: [P] Earliest event of Migraine, including history of migraine
-857: [P] Earliest event of Migraine
-858: [P] Earliest event of Rheumatoid Arthritis
-859: [P] Earliest event of Crohns disease
-860: [P] Earliest event of Ulcerative colitis
-861: [P] Earliest event of Urinary tract infections (UTI)
-862: [P] Earliest event of Alzheimer's disease derived from Imfeld, 2
-863: [P] Cognitive impairment, incident
-864: [P] Earliest event of Dementia
-865: [P] Non-Emergent Major Non Cardiac Surgery
-866: [P] AAA repair
-867: [P] Lower Extremity Bypass
-868: [P] Carotid Endarterectomy
-869: [P] Lung Resection
-870: [P] Esophagectomy
-871: [P] Pancreatectomy
-872: [P] Colectomy
-873: [P] Cystectomy
-874: [P] Nephrectomy
-875: [P] Coronary Artery Bypass Graft Surgery
-876: [P] Aortic or Mitral Valve Repair or Replacement
-877: [P] Non-Emergent MNCS (age 18 or greater), post op Afib (parox)
-878: [P] Non-Emergent MNCS (age 18 or greater), post op Afib (any)
-879: Cxxx Endometriosis indexed on procedure with two or more diagnosis among females 15 to 49
-881: [P] Acute myocardial infarction
-882: [P] Decreased libido
-884: [P] Diarrhea2
-888: [P] Gastrointestinal bleeding
-889: [P] Hyponatremia
-890: [P] Hypotension
-891: [P] Nausea
-892: [P] Stroke
-893: [P] Vertigo
-894: [P] Abdominal pain
-895: [P] Abnormal weight gain
-896: [P] Abnormal weight loss
-898: [P] Acute renal failure
-899: [P] All-cause mortality
-900: [P] Anaphylactoid reaction
-901: [P] Anemia
-907: [P] All-cause mortality2
-910: [P] Anaphylactoid reaction2
-913: [P] Anemia2
-916: [P] Angioedema2
-917: [P] Anxiety
-918: [P] Bradycardia
-919: [P] Cardiac arrhythmia
-920: [P] Cardiovascular disease
-921: [P] Cardiovascular-related mortality
-922: [P] Chest pain or angina
-923: [P] Kidney disease
-924: [P] Coronary heart disease
-925: [P] Cough
-927: [P] Dementia2
-928: [P] Depression2
-929: [P] Edema2
-930: [P] End stage renal disease2
-931: [P] Fall2
-932: [P] Gout2
-933: [P] Headache2
-934: [P] Heart failure2
-935: [P] Hemorrhagic stroke2
-936: [P] Hepatic failure2
-937: [P] Hospitalization with heart failure2
-938: [P] Hospitalization with heart failure
-939: [P] Hospitalization with preinfarction syndrome
-940: [P] Hyperkalemia
-941: [P] Hypokalemia
-942: [P] Hypomagnesemia
-943: [P] Impotence
-944: [P] Ischemic stroke
-945: [P] Malignant neoplasm
-946: [P] Measured renal dysfunction
-947: [P] Neutropenia or agranulocytosis
-948: [P] Rash
-950: [P] Rhabdomyolysis2
-953: [P] Sudden cardiac death
-954: [P] Syncope
-955: [P] Thrombocytopenia
-956: [P] Transient ischemic attack
-957: [P] Type 2 diabetes mellitus
-958: [P] Syncope3
-959: [P] Thrombocytopenia3
-960: [P] Transient ischemic attack3
-961: [P] Type 2 diabetes mellitus3
-963: [P] Vomiting
-964: [P] Chronic kidney disease
-965: [P] 3-point MACE
-967: [P] 4-point MACE
-969: [P] Acute myocardial infarction2
-970: [P] 4-point MACE2
-975: [P] Acute renal failure2
-976: [P] Glycemic control2
-979: [P] Hospitalization with heart failure3
-980: [P] Revascularization
-982: [P] Stroke2
-983: [P] Sudden cardiac death2
-984: [P] Abnormal weight gain2
-985: [P] Abnormal weight loss2
-986: [P] Acute pancreatitis2
-988: [P] All-cause mortality3
-989: [P] Bladder cancer3
-990: [P] Bone fracture3
-991: [P] Breast cancer3
-992: [P] Diabetic ketoacidosis3
-993: [P] Diarrhea3
-994: [P] Genitourinary infection3
-995: [P] Hyperkalemia3
-996: [P] Hypoglycemia3
-997: [P] Hypotension3
-998: [P] Joint pain3
-999: [P] Lower extremity amputation3
-1000: [P] Nausea3
-1001: [P] Peripheral edema3
-1002: [P] Photosensitivity3
-1003: [P] Renal cancer3
-1004: [P] Thyroid tumor3
-1005: [P] Venous thromboembolism3
-1006: [P] Vomiting3
-1007: [P] Earliest event of Epilepsy
-1009: [P] Earliest event of Treatment resistant depression (TRD)
-1010: [P] Earliest event of Chronic Graft Versus Host Disease (GVHD)
-1011: [P] Earliest event of Marginal zone lymphoma
-1012: [P] Earliest event of Waldenstrom macroglobulinemia
-1013: [P] Earliest event of Ankylosing Spondylitis
-1015: [P] Earliest event of Pulmonary arterial hypertension (PAH)2
-1016: [P] Earliest event of Polyarticular juvenile idiopathic arthritis (JIA)
-1017: [P] Earliest event of Neonatal Thrombocytopenia (NT), less than 1 year old
-1018: [P] Earliest event of Warm Autoimmune Hemolytic Anemia (wAIHA), occurring on or after October 2020
-1019: [P] All events of Hemolytic Disease Fetus and Newborn (HDFN), RhD type, with a pregnancy episode
-1020: [P] Earliest event of Major depressive disorder, with NO occurrence of certain psychiatric disorder
-1021: [P] Earliest event of Myasthenia Gravis, inpatient, 2nd diagnosis or treatment, age gte 18
-1022: [P] Earliest event of Depressive and Sleep Disorder
-1023: [P] Earliest Event of Depressive Disorder with Suicidal Ideation or Attempt Prevalent
-1024: [P] Earliest Event of Depressive Disorder with Anhedonia
-1025: [P] First event of Attention-deficit hyperactivity (ADHD) disorder or procedure
-1026: [P] Earliest Event of Multiple Sclerosis
-1027: [P] Earliest event of Chronic Leukocytic Leukemia
-1028: [P] Earliest event of Urothelial carcinoma
-1029: [P] Earliest event of Mantle Cell Lymphoma
-1030: [P] Earliest event of Prostate cancer, among adult males
-1031: [P] Earliest event of Coronary artery disease (CAD)
-1032: [P] Earliest event of Type 2 Diabetes Mellitus (DM), with no type 1 or secondary DM
-1033: [P] Earliest event of Human Immunodeficiency Virus I (HIV), with treatment, lab or 2nd diagnosis
-1034: [P] All events of Respiratory syncytial virus infection, with 30 days washout
+
311: [P] Parasomnia
+742: [P] Parasomnia or Sleep dysfunction with arousal disturbance
+743: [P] Diabetic ketoacidosis IP-ER (SNOMED concept)
+744: [P] Pulmonary Hypertension
+745: [P] Inflammatory Bowel Disease
+746: [P] Chronic Thromboembolic Pulmonary Hypertension
+747: [P] Pulmonary Arterial Hypertension
+748: [P] Psoriatic arthritis
+749: [P] Plaque Psoriasis
+750: [P] Pulmonary hypertension associated with left heart disease (WHO Group 2)
+751: [P] Pulmonary hypertension associated with lung diseases and or hypoxia (WHO Group 3)
+752: [P] Firearm Accidents (FA)
+753: [P] Motor Vehicle Accidents (MVA)
+754: [P] Down Syndrome
+755: [P] Non-infectious uveitis and iridocyclitis
+756: [P] Cystic Fibrosis
+757: [P] Concomitant TNF - alpha Inhibitors and IL23 Inhibitors - GE 30D overlap
+759: [P] Concomitant TNF - alpha Inhibitors and IL12_23 Inhibitors - GE 30D overlap
+760: [P] Concomitant IL 23 Inhibitors and IL12_23 Inhibitors - GE 30D overlap
+761: [P] Pulmonary arterial hypertension with Prior Left Heart or Vice Versa
+762: [P] Endothelin receptor antagonists
+763: [P] Phosphodiesterase 5 inhibitors and guanylate cyclase stimulators
+764: [P] Prostacyclin analogues and prostacyclin receptor agonists
+765: [P] Earliest event of Left Heart Failure
+766: [P] Earliest event of Right Heart Failure
+767: [P] Earliest event of Sarcoidosis
+768: [P] Earliest event of Sickle Cell Anemia
+769: [P] Scleroderma, first occurrence
+770: [P] Essential Hypertension, first occurrence
+771: [P] Pulmonary Hypertension (Group 2 Left heart disease, encompassing)
+772: [P] Pulmonary Hypertension (Group 3 Chronic lung disease, encompassing)
+773: [P] Congenital Heart Disease
+774: [P] Portal Hypertension, first occurrence
+775: [P] First Inflammatory Bowel Disease
+776: [P] Antisynthetase syndrome
+777: [P] Mixed connective tissue disease
+778: [P] Undifferentiated connective tissue disease
+779: [P] Overlap syndrome
+780: [P] Raynaud?s disease or Raynaud's phenomenon
+781: [P] Antiphospholipid syndrome
+782: [P] CTEPH Prevalent (with Echo or RHC) with 2nd dx code 31-365 days after first dx
+783: [P] Pulmonary endarterectomy
+784: [P] Balloon Pulmonary Angioplasty
+785: [P] Skin Burns
+786: [P] Non-small cell lung cancer (NSCLC)
+787: [P] Lung cancer
+788: [P] Breast cancer
+789: [P] Glioblastoma multiforme (GBM)
+790: [P] Colorectal Cancer
+791: [P] Multiple Myeloma
+792: [P] Metastatic Hormone-Sensitive Prostate Cancer Synchronous
+793: [P] Metastatic Hormone-Sensitive Prostate Cancer Metachronus
+794: COPY OF [P][R] Bleeding
+795: [P] Antineoplastic drugs against colorectal cancer
+796: [P] Potential curative surgery for colorectal cancer
+797: [P] Radiotherapy against colorectal cancer
+798: [P] Primary adenocarcinoma of the colon or rectum
+802: [P] Acute Respiratory Failure 2
+803: [P] Fascial dehiscence and evisceration
+804: [P] Anastomotic leak or dehiscence
+805: [P] Intestinal obstruction (broad)
+806: [P] Intraabdominal abscess
+807: [P] Perioperative aspiration
+808: [P] Postoperative hemorrhage
+809: [P] Surgical wound infection (narrow)
+810: [P] Distant metastasis following colorectal cancer (wide)
+811: [P] Local recurrence after colorectal cancer
+812: [P] Primary adenocarcinoma of the colon or rectum, MSI-H or dMMR, no surgery or oncological treatment
+813: [P] Primary adenocarcinoma of the colon or rectum treated with potentially curative surgery
+814: [P] Primary adenocarcinoma of the colon or rectum, no curative intended surgery and oncological treatment
+817: [P] Primary adenocarcinoma of the colon or rectum, no curative intended surgery and oncological treatment2
+818: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR
+819: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR, treated with curative intended surgery
+820: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR, oncological treatment, no curative surgery
+821: [P] Primary adenocarcinoma of the colon or rectum, MSI-L, MSI-indeterminate, MSS or pMMR, no surgery or oncological treatment
+822: [P] Primary adenocarcinoma of colon or rectum, MSI-H or dMMR, surgical treatment
+823: [P] Primary adenocarcinoma of colon or rectum, MSI-H or dMMR, oncological treatment no surgery
+824: [P] Primary adenocarcinoma of colon or rectum,  MSI-H or dMMR
+825: [P] Primary adenocarcinoma of colon
+826: [P] Primary adenocarcinoma of colon, no surgery or oncological treatment
+827: [P] Primary adenocarcinoma of colon surgical treatment
+828: [P] Primary adenocarcinoma of colon oncological treatment, no surgery
+829: [P] Primary adenocarcinoma of colon, MSI-L, MSI-indeterminate, MSS or pMMR
+830: [P] Primary adenocarcinoma of colon, MSI-L, MSI-indeterminate, MSS or pMMR, surgically treated
+831: [P] Primary adenocarcinoma of colon MSI-L, MSI-indeterminate, MSS or pMMR, oncological treatment, no surgery
+832: [P] Primary adenocarcinoma of colon MSI-L, MSI-indeterminate, MSS or pMMR, no surgery or oncological treatment
+833: [P] Primary adenocarcinoma of colon MSI-H or dMMR
+834: [P] Primary adenocarcinoma of colon MSI-H or dMMR, surgical treatment
+835: [P] Primary adenocarcinoma of colon MSI-H or dMMR, oncological treatment, no surgery
+836: [P] Primary adenocarcinoma of colon MSI-H or dMMR, no surgery or oncological treatment
+837: [P] Primary adenocarcinoma of rectum
+838: [P] Primary adenocarcinoma of rectum MSI-H or dMMR
+839: [P] Primary adenocarcinoma of rectum, MSI-H or dMMR, no surgery or oncological treatment
+840: [P] Primary adenocarcinoma of rectum MSI-H or dMMR, oncological treatment, no surgery
+841: [P] Primary adenocarcinoma of rectum, MSI-H or dMMR, surgical treatment
+842: [P] Primary adenocarcinoma of rectum, MSI-L, MSI-indeterminate, MSS or pMMR
+843: [P] Primary adenocarcinoma of rectum MSI-L, MSI-indeterminate, MSS or pMMR, oncological treatment,  no surgery
+844: [P] Primary adenocarcinoma of rectum MSI-L, MSI-indeterminate, MSS or pMMR, no surgery and no oncological treatment
+845: [P] Primary adenocarcinoma of rectum MSI-L, MSI-indeterminate, MSS or pMMR, treated with potentially curative surgery
+846: [P] Primary adenocarcinoma of rectum oncological treatment, no surgery
+847: [P] Primary adenocarcinoma of rectum surgical treatment
+848: [P] Primary adenocarcinoma of rectum, no surgery or oncological treatment
+850: [P] Intestinal obstruction (broad 2)
+851: [P] Intraabdominal obstruction (broad)
+852: [P] Surgical wound infection (broad)
+854: [P] Distant metastasis following colorectal cancer (medium)
+855: [P] Distant metastasis following colorectal cancer (narrow)
+856: [P] Earliest event of Migraine, including history of migraine
+857: [P] Earliest event of Migraine
+858: [P] Earliest event of Rheumatoid Arthritis
+859: [P] Earliest event of Crohns disease
+860: [P] Earliest event of Ulcerative colitis
+861: [P] Earliest event of Urinary tract infections (UTI)
+862: [P] Earliest event of Alzheimer's disease derived from Imfeld, 2
+863: [P] Cognitive impairment, incident
+864: [P] Earliest event of Dementia
+865: [P] Non-Emergent Major Non Cardiac Surgery
+866: [P] AAA repair
+867: [P] Lower Extremity Bypass
+868: [P] Carotid Endarterectomy
+869: [P] Lung Resection
+870: [P] Esophagectomy
+871: [P] Pancreatectomy
+872: [P] Colectomy
+873: [P] Cystectomy
+874: [P] Nephrectomy
+875: [P] Coronary Artery Bypass Graft Surgery
+876: [P] Aortic or Mitral Valve Repair or Replacement
+877: [P] Non-Emergent MNCS (age 18 or greater), post op Afib (parox)
+878: [P] Non-Emergent MNCS (age 18 or greater), post op Afib (any)
+879: Cxxx Endometriosis indexed on procedure with two or more diagnosis among females 15 to 49
+881: [P] Acute myocardial infarction
+882: [P] Decreased libido
+884: [P] Diarrhea2
+888: [P] Gastrointestinal bleeding
+889: [P] Hyponatremia
+890: [P] Hypotension
+891: [P] Nausea
+892: [P] Stroke
+893: [P] Vertigo
+894: [P] Abdominal pain
+895: [P] Abnormal weight gain
+896: [P] Abnormal weight loss
+898: [P] Acute renal failure
+899: [P] All-cause mortality
+900: [P] Anaphylactoid reaction
+901: [P] Anemia
+907: [P] All-cause mortality2
+910: [P] Anaphylactoid reaction2
+913: [P] Anemia2
+916: [P] Angioedema2
+917: [P] Anxiety
+918: [P] Bradycardia
+919: [P] Cardiac arrhythmia
+920: [P] Cardiovascular disease
+921: [P] Cardiovascular-related mortality
+922: [P] Chest pain or angina
+923: [P] Kidney disease
+924: [P] Coronary heart disease
+925: [P] Cough
+927: [P] Dementia2
+928: [P] Depression2
+929: [P] Edema2
+930: [P] End stage renal disease2
+931: [P] Fall2
+932: [P] Gout2
+933: [P] Headache2
+934: [P] Heart failure2
+935: [P] Hemorrhagic stroke2
+936: [P] Hepatic failure2
+937: [P] Hospitalization with heart failure2
+938: [P] Hospitalization with heart failure
+939: [P] Hospitalization with preinfarction syndrome
+940: [P] Hyperkalemia
+941: [P] Hypokalemia
+942: [P] Hypomagnesemia
+943: [P] Impotence
+944: [P] Ischemic stroke
+945: [P] Malignant neoplasm
+946: [P] Measured renal dysfunction
+947: [P] Neutropenia or agranulocytosis
+948: [P] Rash
+950: [P] Rhabdomyolysis2
+953: [P] Sudden cardiac death
+954: [P] Syncope
+955: [P] Thrombocytopenia
+956: [P] Transient ischemic attack
+957: [P] Type 2 diabetes mellitus
+958: [P] Syncope3
+959: [P] Thrombocytopenia3
+960: [P] Transient ischemic attack3
+961: [P] Type 2 diabetes mellitus3
+963: [P] Vomiting
+964: [P] Chronic kidney disease
+965: [P] 3-point MACE
+967: [P] 4-point MACE
+969: [P] Acute myocardial infarction2
+970: [P] 4-point MACE2
+975: [P] Acute renal failure2
+976: [P] Glycemic control2
+979: [P] Hospitalization with heart failure3
+980: [P] Revascularization
+982: [P] Stroke2
+983: [P] Sudden cardiac death2
+984: [P] Abnormal weight gain2
+985: [P] Abnormal weight loss2
+986: [P] Acute pancreatitis2
+988: [P] All-cause mortality3
+989: [P] Bladder cancer3
+990: [P] Bone fracture3
+991: [P] Breast cancer3
+992: [P] Diabetic ketoacidosis3
+993: [P] Diarrhea3
+994: [P] Genitourinary infection3
+995: [P] Hyperkalemia3
+996: [P] Hypoglycemia3
+997: [P] Hypotension3
+998: [P] Joint pain3
+999: [P] Lower extremity amputation3
+1000: [P] Nausea3
+1001: [P] Peripheral edema3
+1002: [P] Photosensitivity3
+1003: [P] Renal cancer3
+1004: [P] Thyroid tumor3
+1005: [P] Venous thromboembolism3
+1006: [P] Vomiting3
+1007: [P] Earliest event of Epilepsy
+1009: [P] Earliest event of Treatment resistant depression (TRD)
+1010: [P] Earliest event of Chronic Graft Versus Host Disease (GVHD)
+1011: [P] Earliest event of Marginal zone lymphoma
+1012: [P] Earliest event of Waldenstrom macroglobulinemia
+1013: [P] Earliest event of Ankylosing Spondylitis
+1015: [P] Earliest event of Pulmonary arterial hypertension (PAH)2
+1016: [P] Earliest event of Polyarticular juvenile idiopathic arthritis (JIA)
+1017: [P] Earliest event of Neonatal Thrombocytopenia (NT), less than 1 year old
+1018: [P] Earliest event of Warm Autoimmune Hemolytic Anemia (wAIHA), occurring on or after October 2020
+1019: [P] All events of Hemolytic Disease Fetus and Newborn (HDFN), RhD type, with a pregnancy episode
+1020: [P] Earliest event of Major depressive disorder, with NO occurrence of certain psychiatric disorder
+1021: [P] Earliest event of Myasthenia Gravis, inpatient, 2nd diagnosis or treatment, age gte 18
+1022: [P] Earliest event of Depressive and Sleep Disorder
+1023: [P] Earliest Event of Depressive Disorder with Suicidal Ideation or Attempt Prevalent
+1024: [P] Earliest Event of Depressive Disorder with Anhedonia
+1025: [P] First event of Attention-deficit hyperactivity (ADHD) disorder or procedure
+1026: [P] Earliest Event of Multiple Sclerosis
+1027: [P] Earliest event of Chronic Leukocytic Leukemia
+1028: [P] Earliest event of Urothelial carcinoma
+1029: [P] Earliest event of Mantle Cell Lymphoma
+1030: [P] Earliest event of Prostate cancer, among adult males
+1031: [P] Earliest event of Coronary artery disease (CAD)
+1032: [P] Earliest event of Type 2 Diabetes Mellitus (DM), with no type 1 or secondary DM
+1033: [P] Earliest event of Human Immunodeficiency Virus I (HIV), with treatment, lab or 2nd diagnosis
+1034: [P] All events of Respiratory syncytial virus infection, with 30 days washout

This release is a clean up of files and cohorts before adding cohorts from HowOften. getPhenotypeLog() now gives additional information about a cohort. These are programmatically derived from Circe model compatible cohort json.

-
censorWindowStartDate   censorWindowEndDate collapseSettingsType    
-collapseEraPad  exitStrategy    exitDateOffSetField exitDateOffSet  
-numberOfInclusionRules  qualifyingLimitType primaryCriteriaLimit    
-numberOfCohortEntryEvents   numberOfDomainsInEntryEvents    
-domainsInEntryEvents    continousObservationWindowPrior 
-continousObservationWindowPost  numberOfConceptSets 
-demographicCriteria demographicCriteriaAge  demographicCriteriaGender   
-useOfObservationPeriodInclusionRule restrictedByVisit   
-domainConditionOccurrence   domainMeasurement   domainObservation   
-domainVisitOccurrence   domainDeath domainDrugExposure  
-criteriaAgePrimaryCriteria  domainDeviceExposure    
-domainProcedureOccurrence   criteriaAgeInclusionRules   
-criteriaGenderPrimaryCriteria   criteriaGenderInclusionRules
+
censorWindowStartDate   censorWindowEndDate collapseSettingsType    
+collapseEraPad  exitStrategy    exitDateOffSetField exitDateOffSet  
+numberOfInclusionRules  qualifyingLimitType primaryCriteriaLimit    
+numberOfCohortEntryEvents   numberOfDomainsInEntryEvents    
+domainsInEntryEvents    continousObservationWindowPrior 
+continousObservationWindowPost  numberOfConceptSets 
+demographicCriteria demographicCriteriaAge  demographicCriteriaGender   
+useOfObservationPeriodInclusionRule restrictedByVisit   
+domainConditionOccurrence   domainMeasurement   domainObservation   
+domainVisitOccurrence   domainDeath domainDrugExposure  
+criteriaAgePrimaryCriteria  domainDeviceExposure    
+domainProcedureOccurrence   criteriaAgeInclusionRules   
+criteriaGenderPrimaryCriteria   criteriaGenderInclusionRules

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: No new cohorts were added in this release.

@@ -1181,45 +1228,45 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 39 were added.

-
701: [P][R] Ascites
-702: [P] Alanine aminotransferase (ALT) elevated
-703: [P] Aspartate aminotransferase (AST) elevated
-705: [P] Total Bilirubin elevated
-706: [P] Prothrombin time (PT) elevated
-707: Inpatient Hospitalization (0Pe, 1Era)
-708: [P] International normalized ratio (INR) elevated
-709: [P][R] Chronic liver disease
-710: [P] Cirrhosis of liver or its sequela
-711: [P][R] Transplanted liver present
-712: [P] Viral hepatitis including history of
-713: [P] Alcoholic hepatitis or alcohol liver disorder
-714: [P][R] Endometriosis (clinical)
-715: [P] Hepatic fibrosis
-716: [P] Acute Hepatic Injury
-717: [P] Portal hypertension or esophageal varices
-719: [P] Acute Hepatic Injury or jaundice while inpatient with no cooccurring certain liver disease
-720: [P] Aplastic Anemia
-721: [P] Sudden New Onset Blindness
-722: [P] Endometriosis indexed on procedure with two or more diagnosis among females 15 to 49
-723: [P] First Acute Hepatic Failure with no known severe liver disease
-724: [P] First Acute Hepatic Failure with no known liver disease
-725: [P] All events of Acute Kidney Injury (AKI), with a washout period of 30 days
-726: [P] All events of Anaphylaxis, Mini-Sentinel
-727: [P] All events of Angioedema, with a washout period of 180 days
-728: [P] Autoimmune hemolytic anemia events not including evans syndrome
-729: [P] Autoimmune hepatitis, with a washout period of 365 days
-730: [P] Acute pancreatitis, indexed on visit with NO chronic or hereditary pancreatitis
-731: [P] Sudden Hearing Loss, No congenital anomaly or middle or inner ear conditions
-732: [P] Severe Cutaneous Adverse Reaction (SCAR = SJS+TEN+DRESS) with clean window
-733: [P] Drug Rash with Eosinophilia and Systemic Symptoms (DRESS) with clean window
-734: [P] Drug Rash with Eosinophilia and Systemic Symptoms (DRESS)
-735: [P] Acute Liver Injury indexed on diagnosis or symptoms with no chronic hepatic failure
-736: [P] Acute Liver Injury NO viral, alcoholic, chronic hepatic failure
-737: [P] Neutropenic Fever, Inpatient or ER, indexed on fever or Infection, 90 days era
-738: [P] Autoimmune hemolytic anemia
-739: [P] All events of Isolated Immune Thrombocytopenia (ITP), with a washout period of 365 days
-740: [P] Earliest event of Pulmonary arterial hypertension (PAH)
-741: [P] Earliest event of Thrombotic microangiopathy (TMA) or Microangiopathic hemolytic anemia (MAHA)
+
701: [P][R] Ascites
+702: [P] Alanine aminotransferase (ALT) elevated
+703: [P] Aspartate aminotransferase (AST) elevated
+705: [P] Total Bilirubin elevated
+706: [P] Prothrombin time (PT) elevated
+707: Inpatient Hospitalization (0Pe, 1Era)
+708: [P] International normalized ratio (INR) elevated
+709: [P][R] Chronic liver disease
+710: [P] Cirrhosis of liver or its sequela
+711: [P][R] Transplanted liver present
+712: [P] Viral hepatitis including history of
+713: [P] Alcoholic hepatitis or alcohol liver disorder
+714: [P][R] Endometriosis (clinical)
+715: [P] Hepatic fibrosis
+716: [P] Acute Hepatic Injury
+717: [P] Portal hypertension or esophageal varices
+719: [P] Acute Hepatic Injury or jaundice while inpatient with no cooccurring certain liver disease
+720: [P] Aplastic Anemia
+721: [P] Sudden New Onset Blindness
+722: [P] Endometriosis indexed on procedure with two or more diagnosis among females 15 to 49
+723: [P] First Acute Hepatic Failure with no known severe liver disease
+724: [P] First Acute Hepatic Failure with no known liver disease
+725: [P] All events of Acute Kidney Injury (AKI), with a washout period of 30 days
+726: [P] All events of Anaphylaxis, Mini-Sentinel
+727: [P] All events of Angioedema, with a washout period of 180 days
+728: [P] Autoimmune hemolytic anemia events not including evans syndrome
+729: [P] Autoimmune hepatitis, with a washout period of 365 days
+730: [P] Acute pancreatitis, indexed on visit with NO chronic or hereditary pancreatitis
+731: [P] Sudden Hearing Loss, No congenital anomaly or middle or inner ear conditions
+732: [P] Severe Cutaneous Adverse Reaction (SCAR = SJS+TEN+DRESS) with clean window
+733: [P] Drug Rash with Eosinophilia and Systemic Symptoms (DRESS) with clean window
+734: [P] Drug Rash with Eosinophilia and Systemic Symptoms (DRESS)
+735: [P] Acute Liver Injury indexed on diagnosis or symptoms with no chronic hepatic failure
+736: [P] Acute Liver Injury NO viral, alcoholic, chronic hepatic failure
+737: [P] Neutropenic Fever, Inpatient or ER, indexed on fever or Infection, 90 days era
+738: [P] Autoimmune hemolytic anemia
+739: [P] All events of Isolated Immune Thrombocytopenia (ITP), with a washout period of 365 days
+740: [P] Earliest event of Pulmonary arterial hypertension (PAH)
+741: [P] Earliest event of Thrombotic microangiopathy (TMA) or Microangiopathic hemolytic anemia (MAHA)
@@ -1231,706 +1278,706 @@

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 7 were added.

-
410: [P] Acute Urinary tract infections UTI (1Pe, 30Era)
-411: [P] Sepsis or Septic Shock (1Pe, 7Era)
-412: Transverse myelitis indexed on diagnosis (1Ps, 0Era, 365W)
-414: [P] Acute Skin Eruption symptoms (1Pe, 7Era)
-415: [P] Skin Erythema (1Pe, 7Era)
-416: [P] Skin Rash (1Pe, 7Era)
-417: [P] Acute gastrointestinal bleeding events (7Pe, 30Era)
+
410: [P] Acute Urinary tract infections UTI (1Pe, 30Era)
+411: [P] Sepsis or Septic Shock (1Pe, 7Era)
+412: Transverse myelitis indexed on diagnosis (1Ps, 0Era, 365W)
+414: [P] Acute Skin Eruption symptoms (1Pe, 7Era)
+415: [P] Skin Erythema (1Pe, 7Era)
+416: [P] Skin Rash (1Pe, 7Era)
+417: [P] Acute gastrointestinal bleeding events (7Pe, 30Era)

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 44 were added.

-
363: [P] Joint Stiffness (3Pe, 7Era)
-364: [P] Sleep disorder (3Pe, 7Era)
-365: [P] Dysuria (3Pe, 7Era)
-366: [P] Streptococcal throat infection (14Pe, 30Era)
-367: [P] Allergic Rhinitis (14Pe, 30Era)
-368: [P] Sinusitis (7Pe, 30Era)
-369: [P] Allergic condition (14Pe, 30Era)
-370: [P] Allergic disorder (14Pe, 30Era)
-371: [P] Claudication Pain (365Pe, 365Era)
-372: [P] Otitis media (3Pe, 30Era)
-373: [P] Iron deficiency Anemia (365Pe, 365Era)
-374: [P] Drug Dependence Disorder (30Pe, 365Era)
-375: [P] Gall stone disorder (30Pe, 365Era)
-376: [P] Skin Bleeding (1Pe, 7Era)
-377: [P] Skin Petechiae (1Pe, 7Era)
-378: [P] Skin Purpura (1Pe, 7Era)
-379: [P] Ecchymosis (1Pe, 7Era)
-380: [P] Jaundice (1Pe, 7Era)
-381: [P] Skin Itching  (1Pe, 7Era)
-382: [P] Prurititc Rash (1Pe, 7Era)
-383: [P] Eczematous Atopic Dermatitis and non hyperkeratotic dermatosis (1Pe, 365Era)
-384: [P] Contact Dermatitis (14Pe, 60Era)
-385: [P] Intertrigo (14Pe, 60Era)
-386: [P] Seborrheic dermatitis (14Pe, 60Era)
-387: [P] Photodermatitis (14Pe, 60Era)
-388: [P] Peripheral Neuritis (FP)
-389: [P] Peripheral Neuropathy or Neuritits (FP)
-391: [P] Hearing Loss (30Pe, 365Era)
-392: [P] Otalgia or Otitis (3Pe, 30Era)
-393: [P] Low Back Pain or Injury (3Pe, 7Era)
-394: [P] Gastroesophageal reflux disease (365Pe, 365Era)
-395: [P] Dysmenorrhea (90Pe, 365Era)
-396: [P] Osteoarthritis (FP)
-397: [P] Benign Prostatic Hyperplasia (FP)
-398: [P] Bladder Outflow Obstruction (0Pe, 180Era)
-399: [P] Kidney Stone (1Pe, 30Era)
-400: [P] Prostate Cancer among adult males (FP)
-401: [P] Uterine Fibroids (FP)
-402: [P] Ventilatory assist for respiratory findings with Acute Respiratory Failure (0Pe, 0Era)
-403: [P] Acute Respiratory Failure in inpatient or Emergency room (0Pe, 0Era)
-404: [P] Ventricular Tachycardia, in an Inpatient or Emergency room setting (1Pe, 7Era)
-405: [P] Atrial Fibrillation or Flutter (1Pe, 365Era)
-406: [P] Intellectual Disability (FP)
-407: [P] Hemorrhoids (1Pe, 30Era)
+
363: [P] Joint Stiffness (3Pe, 7Era)
+364: [P] Sleep disorder (3Pe, 7Era)
+365: [P] Dysuria (3Pe, 7Era)
+366: [P] Streptococcal throat infection (14Pe, 30Era)
+367: [P] Allergic Rhinitis (14Pe, 30Era)
+368: [P] Sinusitis (7Pe, 30Era)
+369: [P] Allergic condition (14Pe, 30Era)
+370: [P] Allergic disorder (14Pe, 30Era)
+371: [P] Claudication Pain (365Pe, 365Era)
+372: [P] Otitis media (3Pe, 30Era)
+373: [P] Iron deficiency Anemia (365Pe, 365Era)
+374: [P] Drug Dependence Disorder (30Pe, 365Era)
+375: [P] Gall stone disorder (30Pe, 365Era)
+376: [P] Skin Bleeding (1Pe, 7Era)
+377: [P] Skin Petechiae (1Pe, 7Era)
+378: [P] Skin Purpura (1Pe, 7Era)
+379: [P] Ecchymosis (1Pe, 7Era)
+380: [P] Jaundice (1Pe, 7Era)
+381: [P] Skin Itching  (1Pe, 7Era)
+382: [P] Prurititc Rash (1Pe, 7Era)
+383: [P] Eczematous Atopic Dermatitis and non hyperkeratotic dermatosis (1Pe, 365Era)
+384: [P] Contact Dermatitis (14Pe, 60Era)
+385: [P] Intertrigo (14Pe, 60Era)
+386: [P] Seborrheic dermatitis (14Pe, 60Era)
+387: [P] Photodermatitis (14Pe, 60Era)
+388: [P] Peripheral Neuritis (FP)
+389: [P] Peripheral Neuropathy or Neuritits (FP)
+391: [P] Hearing Loss (30Pe, 365Era)
+392: [P] Otalgia or Otitis (3Pe, 30Era)
+393: [P] Low Back Pain or Injury (3Pe, 7Era)
+394: [P] Gastroesophageal reflux disease (365Pe, 365Era)
+395: [P] Dysmenorrhea (90Pe, 365Era)
+396: [P] Osteoarthritis (FP)
+397: [P] Benign Prostatic Hyperplasia (FP)
+398: [P] Bladder Outflow Obstruction (0Pe, 180Era)
+399: [P] Kidney Stone (1Pe, 30Era)
+400: [P] Prostate Cancer among adult males (FP)
+401: [P] Uterine Fibroids (FP)
+402: [P] Ventilatory assist for respiratory findings with Acute Respiratory Failure (0Pe, 0Era)
+403: [P] Acute Respiratory Failure in inpatient or Emergency room (0Pe, 0Era)
+404: [P] Ventricular Tachycardia, in an Inpatient or Emergency room setting (1Pe, 7Era)
+405: [P] Atrial Fibrillation or Flutter (1Pe, 365Era)
+406: [P] Intellectual Disability (FP)
+407: [P] Hemorrhoids (1Pe, 30Era)

Accepted Cohorts: 5 cohorts were accepted in this release.

-
304: Neurofibromatosis type 1 (FP)
-305: Neurofibromatosis type 1 without Type 2 (FP)
-306: Optical pathway glioma and neurofibromatosis (FP)
-307: Optical pathway glioma or non malignant neoplasm of optic nerve w neurofibromatosis (FP)
-308: Optical pathway glioma with MRI imaging and ophthalmology visits Neurofibromatosis (FP)
+
304: Neurofibromatosis type 1 (FP)
+305: Neurofibromatosis type 1 without Type 2 (FP)
+306: Optical pathway glioma and neurofibromatosis (FP)
+307: Optical pathway glioma or non malignant neoplasm of optic nerve w neurofibromatosis (FP)
+308: Optical pathway glioma with MRI imaging and ophthalmology visits Neurofibromatosis (FP)

New Cohorts: 7 were added.

-
361: [P] Restless Leg Syndrome (FP)
-362: [P] Acute Kidney Injury AKI (7Pe, 30W)
+
361: [P] Restless Leg Syndrome (FP)
+362: [P] Acute Kidney Injury AKI (7Pe, 30W)

Accepted Cohorts: No cohorts were accepted in this release.

New Cohorts: 13 were added.

-
348: [P] Hematuria (7Pe, 30Era)
-349: [P] Lower gastrointestinal bleeding events (7Pe, 30Era)
-350: [P] Hemoptysis (7Pe, 30Era)
-351: [P] Nasal Polyp (365Pe, 365Era)
-352: [P] Inflamed Tonsil (7Pe, 30Era)
-353: [P] Conjunctivitis (3Pe, 7Era)
-354: [P] Nasal Congestion or Rhinitis or Common Cold (3Pe, 7Era)
-355: [P] Laryngitis (3Pe, 7Era)
-356: [P] Epistaxis (3Pe, 7Era)
-357: [P] Pulmonary Edema (3Pe, 30Era)
-358: [P] Acute Respiratory Failure among persons with no chronic respiratory failure (3Pe, 30Era)
-359: [P] Acute Respiratory Failure (3Pe, 30Era)
-360: [P] Pleural Effusion (3Pe, 30Era)
+
348: [P] Hematuria (7Pe, 30Era)
+349: [P] Lower gastrointestinal bleeding events (7Pe, 30Era)
+350: [P] Hemoptysis (7Pe, 30Era)
+351: [P] Nasal Polyp (365Pe, 365Era)
+352: [P] Inflamed Tonsil (7Pe, 30Era)
+353: [P] Conjunctivitis (3Pe, 7Era)
+354: [P] Nasal Congestion or Rhinitis or Common Cold (3Pe, 7Era)
+355: [P] Laryngitis (3Pe, 7Era)
+356: [P] Epistaxis (3Pe, 7Era)
+357: [P] Pulmonary Edema (3Pe, 30Era)
+358: [P] Acute Respiratory Failure among persons with no chronic respiratory failure (3Pe, 30Era)
+359: [P] Acute Respiratory Failure (3Pe, 30Era)
+360: [P] Pleural Effusion (3Pe, 30Era)

Accepted Cohorts: 2 were accepted. 234: Appendicitis (1Pe, 180Era) 213: Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era)

New Cohorts: 9 were added.

-
339: [P] Hypotension (1Pe, 3Era)
-340: [P] Hives, Erythema, Eruption, Urticaria (1Pe, 7Era)
-341: [P] Loss of mentation including coma, loss of consciousness, altered consciousness (1Pe, 3Era)
-342: [P] Urinary Incontinence (1Pe, 3Era)
-343: [P] Fecal Incontinence (1Pe, 3Era)
-344: [P] Doctors office or clinic visit without other overlapping visits (0Pe, 0Era)
-345: [P] Doctors office or clinic visit (0Pe, 0Era)
-346: [P] Non urgent outpatient visit without overlapping inpatient or emergency visit (0Pe, 0Era)
-347: [P] Ambulance utilization (0Pe, 0Era)
+
339: [P] Hypotension (1Pe, 3Era)
+340: [P] Hives, Erythema, Eruption, Urticaria (1Pe, 7Era)
+341: [P] Loss of mentation including coma, loss of consciousness, altered consciousness (1Pe, 3Era)
+342: [P] Urinary Incontinence (1Pe, 3Era)
+343: [P] Fecal Incontinence (1Pe, 3Era)
+344: [P] Doctors office or clinic visit without other overlapping visits (0Pe, 0Era)
+345: [P] Doctors office or clinic visit (0Pe, 0Era)
+346: [P] Non urgent outpatient visit without overlapping inpatient or emergency visit (0Pe, 0Era)
+347: [P] Ambulance utilization (0Pe, 0Era)

Accepted Cohorts: The following cohorts were added

-
119: Systemic lupus erythematosus indexed on signs, symptoms, treatment or diagnosis (FP)
-296: Transverse myelitis or symptoms indexed on symptoms or diagnosis (180Pe, 180Era)
+
119: Systemic lupus erythematosus indexed on signs, symptoms, treatment or diagnosis (FP)
+296: Transverse myelitis or symptoms indexed on symptoms or diagnosis (180Pe, 180Era)

New Cohorts: 17 were added.

-
142: [P] Earliest event of ST elevated myocardial infarction (7P, 1E)
-192: [P] Skin or mucosal bleeding events (1Pe, 7Era)
-298: [P] Urinary bleed events in persons without renal glomerular disease (30Pe, 7Era)
-299: [P] Acute gastrointestinal bleeding events (7Pe, 30Era)
-300: [P] Heavy menstrual bleeding (menorrhagia) events (60Pe, 180Era)
-318: [P] All events of Acute Hepatic Failure in persons without chronic hepatic failure (90Pe, 365Era)
-324: [P] Pain (3Pe, 7Era)
-325: [P] Inpatient Hospitalization By Site of care or type of service (0Pe, 1Era)
-327: [P] Pharyngitis (3Pe, 7Era)
-328: [P] Wheezing (3Pe, 30Era)
-329: [P] Pneumonitis and lung infections (14Pe, 30Era)
-330: [P] Abdominal Bloating (1Pe, 7Era)
-331: [P] Encephalopathy (1Pe, 14Era)
-332: [P] Pain or ache that is Chronic (3Pe, 180Era)
-333: [P] Alcohol Use Disorder (365Pe, 365Era)
-334: [P] Asthma (FP)
-335: [P] Anxiety or Fear (3Pe, 30Era)
+
142: [P] Earliest event of ST elevated myocardial infarction (7P, 1E)
+192: [P] Skin or mucosal bleeding events (1Pe, 7Era)
+298: [P] Urinary bleed events in persons without renal glomerular disease (30Pe, 7Era)
+299: [P] Acute gastrointestinal bleeding events (7Pe, 30Era)
+300: [P] Heavy menstrual bleeding (menorrhagia) events (60Pe, 180Era)
+318: [P] All events of Acute Hepatic Failure in persons without chronic hepatic failure (90Pe, 365Era)
+324: [P] Pain (3Pe, 7Era)
+325: [P] Inpatient Hospitalization By Site of care or type of service (0Pe, 1Era)
+327: [P] Pharyngitis (3Pe, 7Era)
+328: [P] Wheezing (3Pe, 30Era)
+329: [P] Pneumonitis and lung infections (14Pe, 30Era)
+330: [P] Abdominal Bloating (1Pe, 7Era)
+331: [P] Encephalopathy (1Pe, 14Era)
+332: [P] Pain or ache that is Chronic (3Pe, 180Era)
+333: [P] Alcohol Use Disorder (365Pe, 365Era)
+334: [P] Asthma (FP)
+335: [P] Anxiety or Fear (3Pe, 30Era)

Deprecated Cohorts: No new cohorts were added in this release.

New Cohorts: 19 were added.

-
134: [P] Persons with Attention Deficit Hyperactivity Disorder (FP)
-278: [P] Pain that is Non Chronic, Non Generalized (3Pe, 7Era)
-279: [P] Low Back Pain (30Pe, 180Era)
-280: [P] Abdominal Pain (3Pe, 7Era)
-281: [P] Epigastric Pain (3Pe, 7Era)
-282: [P] Joint Pain (3Pe, 30Era)
-283: [P] Prostatitis (180Pe, 365Era)
-284: [P] Myocarditis or Pericarditis (30Pe, 90Era)
-285: [P] Myocarditis or Pericarditis Not due to infections (30Pe, 90Era)
-287: [P] Transverse myelitis includes Myelitis Unspecified and neuromyelitis optica (90Pe, 365Era)
-288: [P] Type 2 Diabetes Mellitus indexed on diagnosis, treatment or lab results (FP)
-289: [P] Presence Of Cardiac Arrhythmia (3Pe, 60Era)
-290: [P] Thyroiditis indexed on diagnosis or treatment without (FP)
-291: [P] Gynecomastia, indexed on diagnosis, procedure or symptoms (FP)
-292: [P] Hepatic Failure (365Pe, 365Era)
-293: [P] Acute Hepatic Injury with no chronic hepatic failure (180Pe, 180Era)
-294: [P] Acute Hepatic Injury with no pre-existing liver disease (180Pe, 180Era)
-295: [P] Acute Hepatic Failure in persons with no pre-existing liver disease (365Pe, 365Era)
-296: Transverse myelitis or symptoms indexed on symptoms or diagnosis (180Pe, 180Era)
+
134: [P] Persons with Attention Deficit Hyperactivity Disorder (FP)
+278: [P] Pain that is Non Chronic, Non Generalized (3Pe, 7Era)
+279: [P] Low Back Pain (30Pe, 180Era)
+280: [P] Abdominal Pain (3Pe, 7Era)
+281: [P] Epigastric Pain (3Pe, 7Era)
+282: [P] Joint Pain (3Pe, 30Era)
+283: [P] Prostatitis (180Pe, 365Era)
+284: [P] Myocarditis or Pericarditis (30Pe, 90Era)
+285: [P] Myocarditis or Pericarditis Not due to infections (30Pe, 90Era)
+287: [P] Transverse myelitis includes Myelitis Unspecified and neuromyelitis optica (90Pe, 365Era)
+288: [P] Type 2 Diabetes Mellitus indexed on diagnosis, treatment or lab results (FP)
+289: [P] Presence Of Cardiac Arrhythmia (3Pe, 60Era)
+290: [P] Thyroiditis indexed on diagnosis or treatment without (FP)
+291: [P] Gynecomastia, indexed on diagnosis, procedure or symptoms (FP)
+292: [P] Hepatic Failure (365Pe, 365Era)
+293: [P] Acute Hepatic Injury with no chronic hepatic failure (180Pe, 180Era)
+294: [P] Acute Hepatic Injury with no pre-existing liver disease (180Pe, 180Era)
+295: [P] Acute Hepatic Failure in persons with no pre-existing liver disease (365Pe, 365Era)
+296: Transverse myelitis or symptoms indexed on symptoms or diagnosis (180Pe, 180Era)

Deprecated Cohorts: No new cohorts were added in this release.

Accepted Cohorts: The following cohorts were added

-
269: Acute Kidney Injury AKI (7Pe, 30W)
+
269: Acute Kidney Injury AKI (7Pe, 30W)

Discussed https://forums.ohdsi.org/t/phenotype-phebruary-day-29-acute-kidney-injury/16067 and peer reviewed by Azza Shoaibi and accepted after modifications. See recording dated August 12th 2022

New Cohorts: 2 were added.

-
276: [P] Sudden Vision Loss (1Pe, 0Era, 365W)
-277: [P] Sudden Hearing Loss (1Pe, 0Era, 365W)
+
276: [P] Sudden Vision Loss (1Pe, 0Era, 365W)
+277: [P] Sudden Hearing Loss (1Pe, 0Era, 365W)

Deprecated Cohorts: No new cohorts were added in this release.

Accepted Cohorts: The following cohorts were added

-
63: Transverse myelitis or symptoms (1Ps, 0Era, 365W)
+
63: Transverse myelitis or symptoms (1Ps, 0Era, 365W)

Deprecated Cohorts: No new cohorts were added in this release.

Modified Cohorts: several symptom and sign based cohorts were updated to support discussion https://forums.ohdsi.org/t/phenotype-submission-symptoms-and-signs/17895

New Cohorts: 2 were added.

-
270: [P] Hemolytic Anemia (7Pe, 0Era, 365W)
-271: [P] Hemolytic Anemia Intra corpuscular (FP)
+
270: [P] Hemolytic Anemia (7Pe, 0Era, 365W)
+271: [P] Hemolytic Anemia Intra corpuscular (FP)

Deprecated Cohorts: No new cohorts were added in this release.

Modified Cohorts: 0 were modified.

New Cohorts: 11 were added.

-
258: [P] Anaphylaxis or Anaphylactic shock events (1Pe, 0Era, 30W)
-259: [P] Anaphylaxis all cause (1Pe, 0Era, 30W)
-260: [P] ST elevated myocardial infarction with inpatient admission (7Pe, 180Era)
-261: [P] Non ST elevated myocardial infarction with inpatient admission (7Pe, 180Era)
-262: [P] Unstable Angina with inpatient admission (7Pe, 180Era)
-263: [P] Unstable Angina OR NSTEMI with inpatient admission (7Pe, 180Era)
-264: [P] Acute Hepatic Failure in persons with liver disease (90Pe, 180W)
-265: [P] Drug Induced Acute Hepatic Failure (90Pe, 180W)
-267: [P] Acute Kidney Injury AKI, in persons with chronic kidney disease (7Pe, 30W)
-268: [P] Acute Kidney Injury AKI, in persons with NO chronic kidney disease (7Pe, 30W)
-269: [P] Acute Kidney Injury (AKI) (7Pe, 30W)
+
258: [P] Anaphylaxis or Anaphylactic shock events (1Pe, 0Era, 30W)
+259: [P] Anaphylaxis all cause (1Pe, 0Era, 30W)
+260: [P] ST elevated myocardial infarction with inpatient admission (7Pe, 180Era)
+261: [P] Non ST elevated myocardial infarction with inpatient admission (7Pe, 180Era)
+262: [P] Unstable Angina with inpatient admission (7Pe, 180Era)
+263: [P] Unstable Angina OR NSTEMI with inpatient admission (7Pe, 180Era)
+264: [P] Acute Hepatic Failure in persons with liver disease (90Pe, 180W)
+265: [P] Drug Induced Acute Hepatic Failure (90Pe, 180W)
+267: [P] Acute Kidney Injury AKI, in persons with chronic kidney disease (7Pe, 30W)
+268: [P] Acute Kidney Injury AKI, in persons with NO chronic kidney disease (7Pe, 30W)
+269: [P] Acute Kidney Injury (AKI) (7Pe, 30W)

Deprecated Cohorts: No new cohorts were added in this release.

Modified Cohorts: 3 were modified.

-
71: [P] Acute myocardial infarction with inpatient admission (7Pe, 180Era)
-221: [P] Anaphylaxis Non Environmental exposure related (1Pe, 0Era, 30W)
-234: [P] Appendicitis (1Pe, 0Era, 365W)
+
71: [P] Acute myocardial infarction with inpatient admission (7Pe, 180Era)
+221: [P] Anaphylaxis Non Environmental exposure related (1Pe, 0Era, 30W)
+234: [P] Appendicitis (1Pe, 0Era, 365W)

Accepted Cohort: 3 cohorts were accepted. cohortId 23, 24 and 25 were considered accepted to the OHDSI Phenotype Library. This cohort is deemed validated as it represents a convention and thus do not need to go through peer review process.

-
23: Inpatient Hospitalization (1Pe, 0Era)
-24: Emergency room visits (0Pe, 0Era)
-25: All cause mortality
+
23: Inpatient Hospitalization (1Pe, 0Era)
+24: Emergency room visits (0Pe, 0Era)
+25: All cause mortality

New Cohorts: 8 were added.

-
100: [P] Alzheimer's disease
-119: [P] Systemic lupus erythematosus (FP)
-251: [P] Acute pancreatitis (7Pe, 0Era, 365W)
-253: [P] Drug Induced Acute pancreatitis (7Pe, 365W)
-254: [P] Drug Resistant Epilepsy
-255: [P] Alzheimer's disease (based on Imfeld, 2013)
-256: [P] Facial Palsy lower motor neuron including Bells Palsy (180Pe, 0Era, 183W)
-257: [P] Emergency room visits or code (0Pe, 0Era)
+
100: [P] Alzheimer's disease
+119: [P] Systemic lupus erythematosus (FP)
+251: [P] Acute pancreatitis (7Pe, 0Era, 365W)
+253: [P] Drug Induced Acute pancreatitis (7Pe, 365W)
+254: [P] Drug Resistant Epilepsy
+255: [P] Alzheimer's disease (based on Imfeld, 2013)
+256: [P] Facial Palsy lower motor neuron including Bells Palsy (180Pe, 0Era, 183W)
+257: [P] Emergency room visits or code (0Pe, 0Era)

Deprecated Cohorts: No cohorts were added in this release.

Modified Cohorts: 136 were modified. Several cohorts were changed from [P] to [W] i.e. were withdrawn from peer review consideration. Some of the cohorts in [P] pending peer review status were modified by the contributor. The changes includes cohort name changes and cohort specification changes. No accepted cohorts were modified.

-
2: [W] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 7Era)
-3: [P] Cough (3Ps, 30Era)
-4: [P] Diarrhea (7Ps, 30Era)
-5: [P] Dyspnea (14Pe, 30Era)
-6: [P] Fever (3Pe, 30Era)
-7: [P] Headache, Migraine or related Neurologic pain (7Pe, 30Era)
-8: [P] Anosmia OR Hyposmia OR Dysgeusia (7Ps, 180Era)
-9: [P] Sore throat (7Pe, 30Era)
-10: [P] Nausea or Vomiting (3Pe, 30Era)
-11: [P] Malaise or fatigue (3P, 30Era)
-12: [P] Rhinitis or common cold (7P, 30Era)
-13: [P] Myalgia (not explained by injury, ischemia or systemic inflammation) (3Pe, 30Era)
-14: [P] Myalgia (3Pe, 30Era)
-15: [W] Exposure to Viral Disease (7Pe, 30Era)
-16: [W] Exposure to SARS-Cov 2 and coronavirus (7Pe, 30Era)
-17: [W] Exposure to SARS-Cov 2 (7Pe, 30Era)
-18: [P] Multiple Inflammatory Syndrome (30Pe, 30Era)
-19: [P] Acute Typical Pneumonia (14Pe, 30Era)
-20: [P] Bronchitis (14Pe, 90Era)
-21: [P] Acute respiratory distress syndrome (ARDS) or Acute Respiratory Failure (3Pe, 30Era)
-22: [W] SARS-CoV-2 testing (1Ps, 0Era)
-26: [P] Asthma or Chronic obstructive pulmonary disease (COPD) (FP)
-27: [P] Asthma without COPD (FP)
-28: [P] Chronic obstructive pulmonary disease (COPD) without asthma (FP)
-29: [W] Autoimmune condition (FP)
-30: [P] Tuberculosis (FP)
-31: [P] Malignant neoplasm excluding non-melanoma skin cancer (FP)
-32: [P] Obesity (FP)
-33: [P] Dementia (FP)
-34: [P] Hypertensive disorder or hypertensive complications (FP)
-35: [W] Chronic kidney disease (FP)
-36: [P] Human immunodeficiency virus (not HIV2) infection (FP)
-37: [P] Hepatitis C (FP)
-38: [P] Heart disease (FP)
-39: [W] End stage renal disease (FP)
-40: [P] Diabetes Mellitus Type 2 (FP)
-41: [W] Chronic kidney disease broad (FP)
-42: [W] End stage renal disease broad (FP)
-43: [P] Respiratory or pulmonary tuberculosis (FP)
-44: [W] COVID-19 diagnosis (3Pe, 7Era)
-45: [W] COVID-19 diagnosis with SARS-Cov-2 test (-3d to 3d) (3Pe, 21Era)
-46: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) within 3d (3Pe, 21Era)
-47: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) (0neg) within 3d (3Pe, 21Era)
-48: [W] COVID-19 diagnosis and SARS-CoV-2 test (0pos upto 3d, 1neg within 3d) (3Pe, 7Era)
-51: [W] SARS-CoV-2 test positive result (0Ps, 0Era)
-52: [W] SARS-CoV-2 test negative result (0Ps, 0Era)
-53: [W] SARS-CoV-2 test positive or negative result - keep persons with positive (0Ps, 0Era)
-54: [P] Febrile seizure (1Pe, 0Era, 42W)
-55: [W] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 21Era)
-56: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (0 neg -3d to 3d) (3Ps, 21Era)
-57: [P] Bleeding (1Pe, 0Era, 30W)
-58: [W] SARS-CoV-2 test positive result (3Ps, 21Era)
-59: [W] COVID-19 diagnosis with no SARS-CoV-2 test (3Ps, 21Era)
-60: [W] SARS-CoV-2 test positive and negative result (0Ps, 0Era)
-61: [P] Bradycardia or heart block with inpatient admission (1Pe, 30Era)
-62: [P] Generalized Seizure (1Pe, 0Era, 42W)
-63: [P] Transverse myelitis or symptoms (1Ps, 0Era, 365W)
-64: [W] Flu-like symptoms fever, cough, malaise, fatigue, dyspnea, myalgia (3P, 30Era)
-65: [W] Acute pancreatitis with inpatient admission (3Pe, 30Era)
-66: [W] Acute renal failure with inpatient admission (3Pe, 30Era)
-67: [W] Hepatic failure with inpatient admission (3Pe, 30Era)
-68: [W] Heart failure with inpatient admission (3Pe, 30Era)
-69: [W] Angioedema with inpatient admission (7Ps, 30Era)
-70: [P] Stroke (ischemic or hemorrhagic) with inpatient admission (7Ps, 30Era)
-71: [P] Acute myocardial infarction with inpatient admission (7Ps, 180Era)
-72: [P] Influenza diagnosis or positive test result (7Pe, 90Era)
-73: [W] Pregnancy (270P, 0Era)
-74: [P] Hemorrhagic stroke (intracerebral bleeding) with inpatient admission (7Ps, 180Era)
-75: [P] Ischemic stroke with inpatient admission (7Ps, 180Era)
-76: [P] Transient ischemic attack with inpatient admission (7Ps, 30Era)
-77: [P] Gastrointestinal bleeding with inpatient admission (7Ps, 30Era)
-78: [P] Cardiac arrhythmia with inpatient admission (1Pe, 30Era)
-79: [P] Dialysis with inpatient admission (1Ps, 7Era)
-80: [P] Extracorporeal Membrane Oxygenation with inpatient admission (1Pe, 30Era)
-81: [P] Cesarean section (7Pe, 180Era)
-82: [P] Intensive services during hospitalization (1Ps, 30Era)
-84: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 180Era)
-85: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 21Era)
-86: [W] SARS-CoV-2 test positive or negative result (0Ps, 0Era)
-87: [W] SARS-CoV-2 test (1Ps, 0Era)
-95: [P] Delirium (FP)
-123: [W] First event of Suicide attempt, including injuries and poisonings with undetermined, 365 days
-189: [P] Right Upper Quadrant Pain (Pe1, 0Era, 14W)
-190: [P] Abdominal Distension (Pe1, 0Era, 14W)
-191: [P] Fatigue, Malaise, Lethargy, Anorexia (Pe1, 0Era, 14W)
-192: [P] Nausea or Vomiting (Pe1, 0Era, 7W)
-193: [P] Jaundice or Itching (Pe1, 0Era, 14W)
-194: [P] Encephalopathy or its presentations (Pe1, 0Era, 30W)
-195: [P] Urothelial bladder cancer (FP)
-197: [P] Coronary Artery Disease from vessel disease to ischemic injury (FP)
-205: [W] Acute pancreatitis (7Pe, 0Era, 365W)
-206: [W] Drug Induced Acute pancreatitis (7Pe, 365W)
-207: [P] Acquired Pure Red Cell Aplasia
-208: [P] Neutropenic Fever (3Pe, 30Era)
-209: [P] Hemolytic Anemia, Extra corpuscular Acquired - G6PD deficiency excluded (7Pe, 0Era, 365W)
-210: [P] Hemolytic Anemia, Extra corpuscular Acquired (7Pe, 0Era, 365W)
-211: [P] Pancytopenia, Acquired
-213: [P] Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era)
-214: [P] Acquired Isolated Neutropenia or unspecified leukopenia (21Pe, 365Era)
-215: [P] Isolated Immune Thrombocytopenia (180Pe, 365Era)
-216: [P] Isolated Immune Thrombocytopenia in absence of common thrombocytopenia causes (180Pe, 365Era)
-217: [P] Thrombotic microangiopathy (TMA) or Microangiopathic hemolytic anemia (MAHA)
-218: [P] Rhabdomyolysis (3Pe, 0Era, 180W)
-219: [P] Sudden Cardiac arrest or cardiac death
-220: [P] Angioedema (3Pe, 0Era, 180W)
-221: [P] Anaphylaxis Non Environmental exposure related (1Pe, 0Era, 180W)
-222: [P] Stevens-Johnson syndrome, toxic epidermal necrolysis spectrum
-223: [P] Posterior reversible encephalopathy syndrome PRES (FP)
-224: [P] Long QT Syndrome or QT prolonged (Acquired)
-225: [P] Drug-induced Lupus (180Pe, 0Era, 365W)
-226: [P] Drug Rash with Eosinophilia and Systemic Symptoms DRESS (1Pe, 0Era, 365W)
-227: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS+EM) (3Pe, 0Era, 365W)
-228: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS) (3Pe, 0Era, 365W)
-229: [P] Progressive multifocal leukoencephalopathy
-230: [P] Autoimmune hepatitis (1Pe, 0Era, 365W)
-231: [P] Erythema multiforme (3Pe, 0Era, 365W)
-232: [P] Paresthesia (3Pe, 0Era, 365W)
-233: [P] Hemorrhagic stroke (1Pe, 0Era, 180W)
-234: [P] Appendicitis (1Pe, 0Era, 365W)
-235: [P] Guillain Barre syndrome (180Pe, FP)
-236: [P] Idiopathic Peripheral Neuropathy (1Pe, 0Era, 365W)
-237: [P] Kawasaki disease (1Pe, 0Era, 365W)
-238: [P] Optic Neuritis (7Pe, 0Era, 365W)
-239: [P] Narcolepsy events (1Pe, 0Era, 365W)
-240: [P] Muscle weakness or monoplegia (1Pe, 0Era, 365W)
-241: [P] Urticaria (1Pe, 0Era, 30W)
-243: [P] Tinnitus (1Pe, 0Era, 365W)
-244: [P] Dizziness (1Pe, 0Era, 180W)
-245: [P] Hepatic Thrombosis (90Pe, 0Era)
-246: [P] Portal vein thrombosis (90Pe, 0Era)
-247: [P] Deep Vein Thrombosis DVT (90Pe, 0Era)
-248: [P] Disseminated intravascular coagulation DIC (1Pe, 0Era, 365W)
-249: [P] Ischemic (Non-hemorrhagic) Stroke (1Pe, 0Era, 365W)
-
-
- -

New Cohorts: 43 were added. 205: [P] Acute pancreatitis (7Pe, 0Era, 365W) 206: [P] Drug Induced Acute pancreatitis (7Pe, 365W) 207: [P] Acquired Pure Red Cell Aplasia 208: [P] Neutropenic Fever (3Pe, 30Era) 209: [P] Hemolytic Anemia, Extra corpuscular Acquired - G6PD deficiency excluded (7Pe, 0Era, 365W) 210: [P] Hemolytic Anemia, Extra corpuscular Acquired (7Pe, 0Era, 365W) 211: [P] Pancytopenia, Acquired 213: [P] Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era) 214: [P] Acquired Isolated Neutropenia or unspecified leukopenia (21Pe, 365Era) 215: [P] Isolated Immune Thrombocytopenia (180Pe, 365Era) 216: [P] Isolated Immune Thrombocytopenia in absence of common thrombocytopenia causes (180Pe, 365Era) 217: [P] Thrombotic microangiopathy or Microangiopathic hemolytic anemia 218: [P] Rhabdomyolysis (3Pe, 0Era, 180W) 219: [P] Sudden Cardiac arrest or cardiac death 220: [P] Angioedema (3Pe, 0Era, 180W) 221: [P] Anaphylaxis Non Environmental exposure related (1Pe, 0Era, 180W) 222: [P] Stevens-Johnson syndrome, toxic epidermal necrolysis spectrum 223: [P] Posterior reversible encephalopathy syndrome (PRES) 224: [P] Long QT Syndrome or QT prolonged (Acquired) 225: [P] Drug-induced Lupus (7Pe, 0Era, 365W) 226: [P] Drug Rash with Eosinophilia and Systemic Symptoms DRESS (1Pe, 0Era, 365W) 227: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS+EM) (3Pe, 0Era, 365W) 228: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS) (3Pe, 0Era, 365W) 229: [P] Progressive multifocal leukoencephalopathy 230: [P] Autoimmune hepatitis (1Pe, 0Era, 365W) 231: [P] Erythema multiforme (3Pe, 0Era, 365W) 232: [P] Paresthesia (3Pe, 0Era, 365W) 233: [P] Hemorrhagic stroke (1Pe, 0Era, 180W) 234: [P] Appendicitis (1Pe, 0Era, 365W) 235: [P] Guillain Barre syndrome (1Pe, 0Era, 365W) 236: [P] Idiopathic Peripheral Neuropathy (1Pe, 0Era, 365W) 237: [P] Kawasaki disease (1Pe, 0Era, 365W) 238: [P] Optic Neuritis (7Pe, 0Era, 365W) 239: [P] Narcolepsy events (1Pe, 0Era, 365W) 240: [P] Muscle weakness or monoplegia (1Pe, 0Era, 365W) 241: [P] Urticaria (1Pe, 0Era, 365W) 243: [P] Tinnitus (1Pe, 0Era, 365W) 244: [P] Dizziness (1Pe, 0Era, 365W) 245: [P] Hepatic Thrombosis (1Pe, 0Era, 365W) 246: [P] Portal vein thrombosis (1Pe, 0Era, 365W) 247: [P] Deep Vein Thrombosis DVT (1Pe, 0Era, 365W) 248: [P] Disseminated intravascular coagulation DIC (1Pe, 0Era, 365W) 249: [P] Ischemic (Non-hemorrhagic) Stroke (1Pe, 0Era, 365W) Deprecated Cohorts: No new cohorts were added in this release. Modified Cohorts: No cohorts were modified in this release.

-
-
- -

New Cohorts: No new cohorts were added in this release.

-

Modified Cohorts: 85 were modified. These are only name modifications. These cohorts have not undergone Peer review process. They are not considered accepted. However, because of grandfathered status (i.e. these cohorts existed in Phenotype Library prior to version 3.0, results for these cohorts are computed as part of PhenotypeLibraryDiagnostics study package - unless withdrawn). The Cohort JSON specifications were not changed.

-
2: [P] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 7Era)
+
2: [W] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 7Era)
 3: [P] Cough (3Ps, 30Era)
 4: [P] Diarrhea (7Ps, 30Era)
 5: [P] Dyspnea (14Pe, 30Era)
 6: [P] Fever (3Pe, 30Era)
-7: [P]Headache, Migraine, Neurologic pain (7Pe, 30Era)
+7: [P] Headache, Migraine or related Neurologic pain (7Pe, 30Era)
 8: [P] Anosmia OR Hyposmia OR Dysgeusia (7Ps, 180Era)
 9: [P] Sore throat (7Pe, 30Era)
 10: [P] Nausea or Vomiting (3Pe, 30Era)
 11: [P] Malaise or fatigue (3P, 30Era)
 12: [P] Rhinitis or common cold (7P, 30Era)
-13: [P] Myalgia (not including secondary causes) (3Pe, 30Era)
+13: [P] Myalgia (not explained by injury, ischemia or systemic inflammation) (3Pe, 30Era)
 14: [P] Myalgia (3Pe, 30Era)
-15: [P] Exposure to Viral Disease (7Pe, 30Era)
-16: [P] Exposure to SARS-Cov 2 and coronavirus (7Pe, 30Era)
-17: [P] Exposure to SARS-Cov 2 (7Pe, 30Era)
+15: [W] Exposure to Viral Disease (7Pe, 30Era)
+16: [W] Exposure to SARS-Cov 2 and coronavirus (7Pe, 30Era)
+17: [W] Exposure to SARS-Cov 2 (7Pe, 30Era)
 18: [P] Multiple Inflammatory Syndrome (30Pe, 30Era)
-19: [P] Pneumonia (14Pe, 30Era)
+19: [P] Acute Typical Pneumonia (14Pe, 30Era)
 20: [P] Bronchitis (14Pe, 90Era)
 21: [P] Acute respiratory distress syndrome (ARDS) or Acute Respiratory Failure (3Pe, 30Era)
-22: [P] SARS-CoV-2 testing (1Ps, 0Era)
-23: [P] Hospitalization (1Pe, 30Era)
-24: [P] Emergency room visits (0Pe, 0Era)
-25: [P] All cause mortality
-26: [P] Asthma or Chronic obstructive pulmonary disease (COPD) (FP)
-27: [P] Asthma without COPD (FP)
-28: [P] Chronic obstructive pulmonary disease (COPD) without asthma (FP)
-30: [P] Tuberculosis (FP)
-31: [P] Malignant neoplasm excluding non-melanoma skin cancer (FP)
-32: [P] Obesity (FP)
-33: [P] Dementia (FP)
-34: [P] Hypertension (FP)
-36: [P] Human immunodeficiency virus infection (FP)
-37: [P] Hepatitis C (FP)
-38: [P] Heart disease (FP)
+22: [W] SARS-CoV-2 testing (1Ps, 0Era)
+26: [P] Asthma or Chronic obstructive pulmonary disease (COPD) (FP)
+27: [P] Asthma without COPD (FP)
+28: [P] Chronic obstructive pulmonary disease (COPD) without asthma (FP)
+29: [W] Autoimmune condition (FP)
+30: [P] Tuberculosis (FP)
+31: [P] Malignant neoplasm excluding non-melanoma skin cancer (FP)
+32: [P] Obesity (FP)
+33: [P] Dementia (FP)
+34: [P] Hypertensive disorder or hypertensive complications (FP)
+35: [W] Chronic kidney disease (FP)
+36: [P] Human immunodeficiency virus (not HIV2) infection (FP)
+37: [P] Hepatitis C (FP)
+38: [P] Heart disease (FP)
+39: [W] End stage renal disease (FP)
 40: [P] Diabetes Mellitus Type 2 (FP)
-43: [P] Tuberculosis broad (FP)
-45: [P] COVID-19 diagnosis with SARS-Cov-2 test (-3d to 3d) (3Pe, 21Era)
-46: [P] COVID-19 diagnosis and SARS-CoV-2 test (1pos) within 3d (3Pe, 21Era)
-47: [P] COVID-19 diagnosis and SARS-CoV-2 test (1pos) (0neg) within 3d (3Pe, 21Era)
-48: [P] COVID-19 diagnosis and SARS-CoV-2 test (0pos upto 3d, 1neg within 3d) (3Pe, 7Era)
-51: [P] SARS-CoV-2 test positive result (0Ps, 0Era)
-52: [P] SARS-CoV-2 test negative result (0Ps, 0Era)
-53: [P] SARS-CoV-2 test positive or negative result - keep persons with positive (0Ps, 0Era)
-54: [P] Febrile seizure (1Ps, 0Era)
-55: [P] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 21Era)
-56: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (0 neg -3d to 3d) (3Ps, 21Era)
-57: [P] Bleeding (1Ps, 30Era)
-58: [P] SARS-CoV-2 test positive result (3Ps, 21Era)
-59: [P] COVID-19 diagnosis with no SARS-CoV-2 test (3Ps, 21Era)
-60: [P] SARS-CoV-2 test positive and negative result (0Ps, 0Era)
-61: [P] Bradycardia or heart block with inpatient admission (1Pe, 30Era)
-62: [P] Generalized Seizure (1Ps, 0Era)
-63: [P] Transverse myelitis (or symptoms with transverse myelitis) 365dWO (1Ps, 0Era)
-64: [P] Flu-like symptoms (3P, 30Era)
-65: [P] Acute pancreatitis with inpatient admission (3Pe, 30Era)
-66: [P] Acute renal failure with inpatient admission (3Pe, 30Era)
-67: [P] Hepatic failure with inpatient admission (3Pe, 30Era)
-68: [P] Heart failure with inpatient admission (3Pe, 30Era)
-69: [P] Angioedema with inpatient admission (7Ps, 30Era)
-70: [P] Stroke (ischemic or hemorrhagic) with inpatient admission (7Ps, 30Era)
-71: [P] Acute myocardial infarction with inpatient admission (7Ps, 180Era)
-72: [P] Influenza (narrow) (7Pe, 90Era)
-74: [P] Hemorrhagic stroke (intracerebral bleeding) with inpatient admission (7Ps, 180Era)
-75: [P] Ischemic stroke with inpatient admission (7Ps, 180Era)
-76: [P] Transient ischemic attack with inpatient admission (7Ps, 30Era)
-77: [P] Gastrointestinal bleeding with inpatient admission (7Ps, 30Era)
-78: [P] Cardiac arrhythmia with inpatient admission (1Pe, 30Era)
-79: [P] Dialysis with inpatient admission (1Ps, 7Era)
-80: [P] Extracorporeal Membrane Oxygenation with inpatient admission (1Ps, 30Era)
-81: [P] Cesarean section (7Pe, 180Era)
-82: [P] Intensive services during hospitalization (1Ps, 30Era)
-84: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 180Era)
-85: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 21Era)
-86: [P] SARS-CoV-2 test positive or negative result (0Ps, 0Era)
-87: [P] SARS-CoV-2 test (1Ps, 0Era)
-95: [P] Delirium (FP)
-189: [P] Right Upper Quadrant Pain (Pe1, 3Era)
-190: [P] Abdominal Distension (Pe1, 7Era)
-191: [P] Fatigue, Malaise, Lethargy, Anorexia (Pe1, 1Era)
-192: [P] Nausea or Vomiting (Pe1, 7Era)
-193: [P] Jaundice or Itching (Pe1, 7Era)
-194: [P] Encephalopathy or its presentations (Pe1, 7Era)
-195: [P] Urothelial bladder cancer (FP)
-197: [P] Coronary Artery Disease from vessel disease to ischemic injury (FP)
+41: [W] Chronic kidney disease broad (FP) +42: [W] End stage renal disease broad (FP) +43: [P] Respiratory or pulmonary tuberculosis (FP) +44: [W] COVID-19 diagnosis (3Pe, 7Era) +45: [W] COVID-19 diagnosis with SARS-Cov-2 test (-3d to 3d) (3Pe, 21Era) +46: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) within 3d (3Pe, 21Era) +47: [W] COVID-19 diagnosis and SARS-CoV-2 test (1pos) (0neg) within 3d (3Pe, 21Era) +48: [W] COVID-19 diagnosis and SARS-CoV-2 test (0pos upto 3d, 1neg within 3d) (3Pe, 7Era) +51: [W] SARS-CoV-2 test positive result (0Ps, 0Era) +52: [W] SARS-CoV-2 test negative result (0Ps, 0Era) +53: [W] SARS-CoV-2 test positive or negative result - keep persons with positive (0Ps, 0Era) +54: [P] Febrile seizure (1Pe, 0Era, 42W) +55: [W] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 21Era) +56: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (0 neg -3d to 3d) (3Ps, 21Era) +57: [P] Bleeding (1Pe, 0Era, 30W) +58: [W] SARS-CoV-2 test positive result (3Ps, 21Era) +59: [W] COVID-19 diagnosis with no SARS-CoV-2 test (3Ps, 21Era) +60: [W] SARS-CoV-2 test positive and negative result (0Ps, 0Era) +61: [P] Bradycardia or heart block with inpatient admission (1Pe, 30Era) +62: [P] Generalized Seizure (1Pe, 0Era, 42W) +63: [P] Transverse myelitis or symptoms (1Ps, 0Era, 365W) +64: [W] Flu-like symptoms fever, cough, malaise, fatigue, dyspnea, myalgia (3P, 30Era) +65: [W] Acute pancreatitis with inpatient admission (3Pe, 30Era) +66: [W] Acute renal failure with inpatient admission (3Pe, 30Era) +67: [W] Hepatic failure with inpatient admission (3Pe, 30Era) +68: [W] Heart failure with inpatient admission (3Pe, 30Era) +69: [W] Angioedema with inpatient admission (7Ps, 30Era) +70: [P] Stroke (ischemic or hemorrhagic) with inpatient admission (7Ps, 30Era) +71: [P] Acute myocardial infarction with inpatient admission (7Ps, 180Era) +72: [P] Influenza diagnosis or positive test result (7Pe, 90Era) +73: [W] Pregnancy (270P, 0Era) +74: [P] Hemorrhagic stroke (intracerebral bleeding) with inpatient admission (7Ps, 180Era) +75: [P] Ischemic stroke with inpatient admission (7Ps, 180Era) +76: [P] Transient ischemic attack with inpatient admission (7Ps, 30Era) +77: [P] Gastrointestinal bleeding with inpatient admission (7Ps, 30Era) +78: [P] Cardiac arrhythmia with inpatient admission (1Pe, 30Era) +79: [P] Dialysis with inpatient admission (1Ps, 7Era) +80: [P] Extracorporeal Membrane Oxygenation with inpatient admission (1Pe, 30Era) +81: [P] Cesarean section (7Pe, 180Era) +82: [P] Intensive services during hospitalization (1Ps, 30Era) +84: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 180Era) +85: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 21Era) +86: [W] SARS-CoV-2 test positive or negative result (0Ps, 0Era) +87: [W] SARS-CoV-2 test (1Ps, 0Era) +95: [P] Delirium (FP) +123: [W] First event of Suicide attempt, including injuries and poisonings with undetermined, 365 days +189: [P] Right Upper Quadrant Pain (Pe1, 0Era, 14W) +190: [P] Abdominal Distension (Pe1, 0Era, 14W) +191: [P] Fatigue, Malaise, Lethargy, Anorexia (Pe1, 0Era, 14W) +192: [P] Nausea or Vomiting (Pe1, 0Era, 7W) +193: [P] Jaundice or Itching (Pe1, 0Era, 14W) +194: [P] Encephalopathy or its presentations (Pe1, 0Era, 30W) +195: [P] Urothelial bladder cancer (FP) +197: [P] Coronary Artery Disease from vessel disease to ischemic injury (FP) +205: [W] Acute pancreatitis (7Pe, 0Era, 365W) +206: [W] Drug Induced Acute pancreatitis (7Pe, 365W) +207: [P] Acquired Pure Red Cell Aplasia +208: [P] Neutropenic Fever (3Pe, 30Era) +209: [P] Hemolytic Anemia, Extra corpuscular Acquired - G6PD deficiency excluded (7Pe, 0Era, 365W) +210: [P] Hemolytic Anemia, Extra corpuscular Acquired (7Pe, 0Era, 365W) +211: [P] Pancytopenia, Acquired +213: [P] Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era) +214: [P] Acquired Isolated Neutropenia or unspecified leukopenia (21Pe, 365Era) +215: [P] Isolated Immune Thrombocytopenia (180Pe, 365Era) +216: [P] Isolated Immune Thrombocytopenia in absence of common thrombocytopenia causes (180Pe, 365Era) +217: [P] Thrombotic microangiopathy (TMA) or Microangiopathic hemolytic anemia (MAHA) +218: [P] Rhabdomyolysis (3Pe, 0Era, 180W) +219: [P] Sudden Cardiac arrest or cardiac death +220: [P] Angioedema (3Pe, 0Era, 180W) +221: [P] Anaphylaxis Non Environmental exposure related (1Pe, 0Era, 180W) +222: [P] Stevens-Johnson syndrome, toxic epidermal necrolysis spectrum +223: [P] Posterior reversible encephalopathy syndrome PRES (FP) +224: [P] Long QT Syndrome or QT prolonged (Acquired) +225: [P] Drug-induced Lupus (180Pe, 0Era, 365W) +226: [P] Drug Rash with Eosinophilia and Systemic Symptoms DRESS (1Pe, 0Era, 365W) +227: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS+EM) (3Pe, 0Era, 365W) +228: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS) (3Pe, 0Era, 365W) +229: [P] Progressive multifocal leukoencephalopathy +230: [P] Autoimmune hepatitis (1Pe, 0Era, 365W) +231: [P] Erythema multiforme (3Pe, 0Era, 365W) +232: [P] Paresthesia (3Pe, 0Era, 365W) +233: [P] Hemorrhagic stroke (1Pe, 0Era, 180W) +234: [P] Appendicitis (1Pe, 0Era, 365W) +235: [P] Guillain Barre syndrome (180Pe, FP) +236: [P] Idiopathic Peripheral Neuropathy (1Pe, 0Era, 365W) +237: [P] Kawasaki disease (1Pe, 0Era, 365W) +238: [P] Optic Neuritis (7Pe, 0Era, 365W) +239: [P] Narcolepsy events (1Pe, 0Era, 365W) +240: [P] Muscle weakness or monoplegia (1Pe, 0Era, 365W) +241: [P] Urticaria (1Pe, 0Era, 30W) +243: [P] Tinnitus (1Pe, 0Era, 365W) +244: [P] Dizziness (1Pe, 0Era, 180W) +245: [P] Hepatic Thrombosis (90Pe, 0Era) +246: [P] Portal vein thrombosis (90Pe, 0Era) +247: [P] Deep Vein Thrombosis DVT (90Pe, 0Era) +248: [P] Disseminated intravascular coagulation DIC (1Pe, 0Era, 365W) +249: [P] Ischemic (Non-hemorrhagic) Stroke (1Pe, 0Era, 365W)
+
+
+ +

New Cohorts: 43 were added. 205: [P] Acute pancreatitis (7Pe, 0Era, 365W) 206: [P] Drug Induced Acute pancreatitis (7Pe, 365W) 207: [P] Acquired Pure Red Cell Aplasia 208: [P] Neutropenic Fever (3Pe, 30Era) 209: [P] Hemolytic Anemia, Extra corpuscular Acquired - G6PD deficiency excluded (7Pe, 0Era, 365W) 210: [P] Hemolytic Anemia, Extra corpuscular Acquired (7Pe, 0Era, 365W) 211: [P] Pancytopenia, Acquired 213: [P] Acquired Neutropenia or unspecified leukopenia (21Pe, 365Era) 214: [P] Acquired Isolated Neutropenia or unspecified leukopenia (21Pe, 365Era) 215: [P] Isolated Immune Thrombocytopenia (180Pe, 365Era) 216: [P] Isolated Immune Thrombocytopenia in absence of common thrombocytopenia causes (180Pe, 365Era) 217: [P] Thrombotic microangiopathy or Microangiopathic hemolytic anemia 218: [P] Rhabdomyolysis (3Pe, 0Era, 180W) 219: [P] Sudden Cardiac arrest or cardiac death 220: [P] Angioedema (3Pe, 0Era, 180W) 221: [P] Anaphylaxis Non Environmental exposure related (1Pe, 0Era, 180W) 222: [P] Stevens-Johnson syndrome, toxic epidermal necrolysis spectrum 223: [P] Posterior reversible encephalopathy syndrome (PRES) 224: [P] Long QT Syndrome or QT prolonged (Acquired) 225: [P] Drug-induced Lupus (7Pe, 0Era, 365W) 226: [P] Drug Rash with Eosinophilia and Systemic Symptoms DRESS (1Pe, 0Era, 365W) 227: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS+EM) (3Pe, 0Era, 365W) 228: [P] Severe Cutaneous Adverse Reaction SCAR (SJS+TEN+DRESS) (3Pe, 0Era, 365W) 229: [P] Progressive multifocal leukoencephalopathy 230: [P] Autoimmune hepatitis (1Pe, 0Era, 365W) 231: [P] Erythema multiforme (3Pe, 0Era, 365W) 232: [P] Paresthesia (3Pe, 0Era, 365W) 233: [P] Hemorrhagic stroke (1Pe, 0Era, 180W) 234: [P] Appendicitis (1Pe, 0Era, 365W) 235: [P] Guillain Barre syndrome (1Pe, 0Era, 365W) 236: [P] Idiopathic Peripheral Neuropathy (1Pe, 0Era, 365W) 237: [P] Kawasaki disease (1Pe, 0Era, 365W) 238: [P] Optic Neuritis (7Pe, 0Era, 365W) 239: [P] Narcolepsy events (1Pe, 0Era, 365W) 240: [P] Muscle weakness or monoplegia (1Pe, 0Era, 365W) 241: [P] Urticaria (1Pe, 0Era, 365W) 243: [P] Tinnitus (1Pe, 0Era, 365W) 244: [P] Dizziness (1Pe, 0Era, 365W) 245: [P] Hepatic Thrombosis (1Pe, 0Era, 365W) 246: [P] Portal vein thrombosis (1Pe, 0Era, 365W) 247: [P] Deep Vein Thrombosis DVT (1Pe, 0Era, 365W) 248: [P] Disseminated intravascular coagulation DIC (1Pe, 0Era, 365W) 249: [P] Ischemic (Non-hemorrhagic) Stroke (1Pe, 0Era, 365W) Deprecated Cohorts: No new cohorts were added in this release. Modified Cohorts: No cohorts were modified in this release.

+
+
+ +

New Cohorts: No new cohorts were added in this release.

+

Modified Cohorts: 85 were modified. These are only name modifications. These cohorts have not undergone Peer review process. They are not considered accepted. However, because of grandfathered status (i.e. these cohorts existed in Phenotype Library prior to version 3.0, results for these cohorts are computed as part of PhenotypeLibraryDiagnostics study package - unless withdrawn). The Cohort JSON specifications were not changed.

+
2: [P] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 7Era)
+3: [P] Cough (3Ps, 30Era)
+4: [P] Diarrhea (7Ps, 30Era)
+5: [P] Dyspnea (14Pe, 30Era)
+6: [P] Fever (3Pe, 30Era)
+7: [P]Headache, Migraine, Neurologic pain (7Pe, 30Era)
+8: [P] Anosmia OR Hyposmia OR Dysgeusia (7Ps, 180Era)
+9: [P] Sore throat (7Pe, 30Era)
+10: [P] Nausea or Vomiting (3Pe, 30Era)
+11: [P] Malaise or fatigue (3P, 30Era)
+12: [P] Rhinitis or common cold (7P, 30Era)
+13: [P] Myalgia (not including secondary causes) (3Pe, 30Era)
+14: [P] Myalgia (3Pe, 30Era)
+15: [P] Exposure to Viral Disease (7Pe, 30Era)
+16: [P] Exposure to SARS-Cov 2 and coronavirus (7Pe, 30Era)
+17: [P] Exposure to SARS-Cov 2 (7Pe, 30Era)
+18: [P] Multiple Inflammatory Syndrome (30Pe, 30Era)
+19: [P] Pneumonia (14Pe, 30Era)
+20: [P] Bronchitis (14Pe, 90Era)
+21: [P] Acute respiratory distress syndrome (ARDS) or Acute Respiratory Failure (3Pe, 30Era)
+22: [P] SARS-CoV-2 testing (1Ps, 0Era)
+23: [P] Hospitalization (1Pe, 30Era)
+24: [P] Emergency room visits (0Pe, 0Era)
+25: [P] All cause mortality
+26: [P] Asthma or Chronic obstructive pulmonary disease (COPD) (FP)
+27: [P] Asthma without COPD (FP)
+28: [P] Chronic obstructive pulmonary disease (COPD) without asthma (FP)
+30: [P] Tuberculosis (FP)
+31: [P] Malignant neoplasm excluding non-melanoma skin cancer (FP)
+32: [P] Obesity (FP)
+33: [P] Dementia (FP)
+34: [P] Hypertension (FP)
+36: [P] Human immunodeficiency virus infection (FP)
+37: [P] Hepatitis C (FP)
+38: [P] Heart disease (FP)
+40: [P] Diabetes Mellitus Type 2 (FP)
+43: [P] Tuberculosis broad (FP)
+45: [P] COVID-19 diagnosis with SARS-Cov-2 test (-3d to 3d) (3Pe, 21Era)
+46: [P] COVID-19 diagnosis and SARS-CoV-2 test (1pos) within 3d (3Pe, 21Era)
+47: [P] COVID-19 diagnosis and SARS-CoV-2 test (1pos) (0neg) within 3d (3Pe, 21Era)
+48: [P] COVID-19 diagnosis and SARS-CoV-2 test (0pos upto 3d, 1neg within 3d) (3Pe, 7Era)
+51: [P] SARS-CoV-2 test positive result (0Ps, 0Era)
+52: [P] SARS-CoV-2 test negative result (0Ps, 0Era)
+53: [P] SARS-CoV-2 test positive or negative result - keep persons with positive (0Ps, 0Era)
+54: [P] Febrile seizure (1Ps, 0Era)
+55: [P] COVID-19 diagnosis or SARS-CoV-2 test (1pos) (3Ps, 21Era)
+56: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (0 neg -3d to 3d) (3Ps, 21Era)
+57: [P] Bleeding (1Ps, 30Era)
+58: [P] SARS-CoV-2 test positive result (3Ps, 21Era)
+59: [P] COVID-19 diagnosis with no SARS-CoV-2 test (3Ps, 21Era)
+60: [P] SARS-CoV-2 test positive and negative result (0Ps, 0Era)
+61: [P] Bradycardia or heart block with inpatient admission (1Pe, 30Era)
+62: [P] Generalized Seizure (1Ps, 0Era)
+63: [P] Transverse myelitis (or symptoms with transverse myelitis) 365dWO (1Ps, 0Era)
+64: [P] Flu-like symptoms (3P, 30Era)
+65: [P] Acute pancreatitis with inpatient admission (3Pe, 30Era)
+66: [P] Acute renal failure with inpatient admission (3Pe, 30Era)
+67: [P] Hepatic failure with inpatient admission (3Pe, 30Era)
+68: [P] Heart failure with inpatient admission (3Pe, 30Era)
+69: [P] Angioedema with inpatient admission (7Ps, 30Era)
+70: [P] Stroke (ischemic or hemorrhagic) with inpatient admission (7Ps, 30Era)
+71: [P] Acute myocardial infarction with inpatient admission (7Ps, 180Era)
+72: [P] Influenza (narrow) (7Pe, 90Era)
+74: [P] Hemorrhagic stroke (intracerebral bleeding) with inpatient admission (7Ps, 180Era)
+75: [P] Ischemic stroke with inpatient admission (7Ps, 180Era)
+76: [P] Transient ischemic attack with inpatient admission (7Ps, 30Era)
+77: [P] Gastrointestinal bleeding with inpatient admission (7Ps, 30Era)
+78: [P] Cardiac arrhythmia with inpatient admission (1Pe, 30Era)
+79: [P] Dialysis with inpatient admission (1Ps, 7Era)
+80: [P] Extracorporeal Membrane Oxygenation with inpatient admission (1Ps, 30Era)
+81: [P] Cesarean section (7Pe, 180Era)
+82: [P] Intensive services during hospitalization (1Ps, 30Era)
+84: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 180Era)
+85: [P] SARS-CoV-2 test (1pos) or COVID-19 diagnosis with (1pos or 0 neg 0d to 3d) (3Ps, 21Era)
+86: [P] SARS-CoV-2 test positive or negative result (0Ps, 0Era)
+87: [P] SARS-CoV-2 test (1Ps, 0Era)
+95: [P] Delirium (FP)
+189: [P] Right Upper Quadrant Pain (Pe1, 3Era)
+190: [P] Abdominal Distension (Pe1, 7Era)
+191: [P] Fatigue, Malaise, Lethargy, Anorexia (Pe1, 1Era)
+192: [P] Nausea or Vomiting (Pe1, 7Era)
+193: [P] Jaundice or Itching (Pe1, 7Era)
+194: [P] Encephalopathy or its presentations (Pe1, 7Era)
+195: [P] Urothelial bladder cancer (FP)
+197: [P] Coronary Artery Disease from vessel disease to ischemic injury (FP)

Withdrawn Cohorts: 13 were withdrawn prior to peer review. These cohorts have not undergone Peer review process. They are not considered accepted. It has been withdrawn prior to peer review. The Cohort JSON specifications were not changed. 29: [W] Autoimmune condition (FP) 35: [W] Chronic kidney disease (FP) 39: [W] End stage renal disease (FP) 41: [W] Chronic kidney disease broad (FP) 42: [W] End stage renal disease broad (FP) 44: [W] COVID-19 diagnosis (3Pe, 7Era) 73: [W] Pregnancy (270P, 0Era) 123: [W] First event of Suicide attempt, including injuries and poisonings with undetermined, 365 days 196: [W] Rheumatoid arthritis (FP) 198: [W] Crohns disease (FP) 199: [W] Major Depressive Disorder (FP) 200: [W] Plaque psoriasis (FP) 201: [W] Ulcerative colitis (FP)

oldId newId