diff --git a/.dbeaver/.credentials-config.json.bak b/.dbeaver/.credentials-config.json.bak new file mode 100644 index 0000000..5d48b6c Binary files /dev/null and b/.dbeaver/.credentials-config.json.bak differ diff --git a/.dbeaver/.data-sources.json.bak b/.dbeaver/.data-sources.json.bak new file mode 100644 index 0000000..115afe3 --- /dev/null +++ b/.dbeaver/.data-sources.json.bak @@ -0,0 +1,46 @@ +{ + "folders": {}, + "connections": { + "postgres-jdbc-186be7b92d8-4d6ef891885b76f5": { + "provider": "postgresql", + "driver": "postgres-jdbc", + "name": "aact_db", + "save-password": true, + "configuration": { + "host": "will-office", + "port": "5432", + "database": "aact_db", + "url": "jdbc:postgresql://will-office:5432/aact_db", + "configurationType": "MANUAL", + "type": "dev", + "auth-model": "native" + } + }, + "mariaDB-186be7ba5a8-7a57b538dcd4188f": { + "provider": "mysql", + "driver": "mariaDB", + "name": "rxnorm_current", + "save-password": true, + "configuration": { + "host": "will-office", + "port": "3306", + "database": "rxnorm_current", + "url": "jdbc:mariadb://will-office:3306/rxnorm_current", + "configurationType": "MANUAL", + "type": "dev", + "auth-model": "native" + } + } + }, + "connection-types": { + "dev": { + "name": "Development", + "color": "255,255,255", + "description": "Regular development database", + "auto-commit": true, + "confirm-execute": false, + "confirm-data-change": false, + "auto-close-transactions": false + } + } +} \ No newline at end of file diff --git a/.dbeaver/.project-metadata.json.bak b/.dbeaver/.project-metadata.json.bak new file mode 100644 index 0000000..d76f603 --- /dev/null +++ b/.dbeaver/.project-metadata.json.bak @@ -0,0 +1 @@ +{"resources":{"development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql":{"default-datasource":"postgres-jdbc-186be7b92d8-4d6ef891885b76f5","default-catalog":"aact_db","default-schema":"public"}}} \ No newline at end of file diff --git a/development_sql/.project b/.project similarity index 65% rename from development_sql/.project rename to .project index e4f5aba..14a5efa 100644 --- a/development_sql/.project +++ b/.project @@ -1,11 +1,12 @@ - development_sql + ClinicalTrialsDataProcessing + org.jkiss.dbeaver.DBeaverNature diff --git a/development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql b/development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql index b3bd1fd..05deef0 100644 --- a/development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql +++ b/development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql @@ -1,91 +1,79 @@ -/*get all the ndc codes associated with an rxcui - * Same as query - * http://will-office:4000/REST/rxcui/1668240/allhistoricalndcs.json - * note the different formats of the dates. +/* OVERVIEW * - * Based on http://will-office:4000/RxNav/search?searchBy=RXCUI&searchTerm=1668240 - * it appears that this rxcui is a sbd or bpck (branded drug or pack) + * This links trials to the first date each drug (indexed by NDA/ANDA etc) is + * put on the market. * - - * If I grab every brand, then every branded drug or pack associated with that drug and then attach that to the nsde data I would get the marketing dates required. - * --get brand names - * trial -> mesh_term -> IN/MIN (rxcui) -> BN (rxcui) - * -- associate brand names to marketing dates - * BN (rxcui) --> SBD/BPCK (RXCUI) --> ndc11 --> nsde + * It takes 3 views to build up to it. * */ -/* - * I do need to figure out a way to change the date types when importing into postgres. In mariadb they ar mmYYYY wheras in the jsonapi they are YYYYmm but I want is YYYY-mm-01 - */ - ----assoicate ingredients, brands, and approved packaging RXCUIs. -create temp table trial_to_pack_rxcui as +--Match trials to brands and ingredients +create or replace view public.match_trials_to_bn_in as with trialncts as ( SELECT DISTINCT nct_id FROM history.trial_snapshots TS ) SELECT bi.nct_id , bi.downcase_mesh_term, - rp.rxcui AS drug_rxcui, - rn.tty1, - rn.rxcui1 as ingredient_rxcui, --ingredients - rn.tty2 , - rn.rxcui2 as brand_or_pack_rxcui --brand or pack + rr.tty2 , + rr.rxcui2 as bn_or_in_cui --brand or ingredient + ,count(*) FROM ctgov.browse_interventions bi - LEFT OUTER JOIN rxnorm_migrated.rxnorm_props AS rp - on bi.downcase_mesh_term = rp.propvalue1 --Link drug ingredient - LEFT OUTER JOIN rxnorm_migrated.rxnorm_relations AS rn - on rp.rxcui = rn.rxcui1 --Grab brand names + left outer JOIN rxnorm_migrated.rxnorm_props AS rp + on bi.downcase_mesh_term = rp.propvalue1 --link names to drug cuis () + left outer join rxnorm_migrated.rxnorm_relations rr + on rr.rxcui1 = rp.rxcui WHERE bi.nct_id in ( SELECT nct_id FROM trialncts ) and bi.mesh_type='mesh-list' - and - rn.tty1 in ('IN','MIN') - and - rn.tty2 = 'BN' + and rp.propname = 'Active_ingredient_name' + and rr.tty2 in ('BN', 'IN', 'MIN') +group by bi.nct_id, bi.downcase_mesh_term , rr.tty2 ,rr.rxcui2 +order by bi.nct_id ; ---link brand names to drug applications (NDA/ANDA etc) -select rr.rxcui1 as BN, rr.rxcui2 as pack, ah.ndc as pack_ndc11 -from - rxnorm_migrated.rxnorm_relations rr +--match trials to through brands NDC11 +create or replace view public.match_trial_to_ndc11 as +select + mttbi.nct_id, + ah.ndc, + count(*) +from public.match_trials_to_bn_in as mttbi + left outer join rxnorm_migrated.rxnorm_relations as rr + on mttbi.bn_or_in_cui = rr.rxcui1 left outer join rxnorm_migrated."ALLNDC_HISTORY" as ah on rr.rxcui2 = ah.rxcui where - tty1 = 'BN' + rr.tty1 = 'BN' and - tty2 in ('SBD', 'BPCK') + rr.tty2 in ('SBD', 'BPCK') and - ah.sab='RXNORM' - + ah.sab='RXNORM' +group by mttbi.nct_id, ah.ndc +order by mttbi.nct_id, ah.ndc ; ----associate NDAs/ANDAs to marketing start dates ----Get start of coverage periods for NSDE dates grouped by arbitrary grouping. -SELECT n.application_number_or_citation, count(*), min( marketing_start_date ) -FROM spl.nsde as n -where product_type = 'HUMAN PRESCRIPTION DRUG' -group by n.application_number_or_citation ; - - ----For a given date, find which NDAs/ANDAs were active were active. -SELECT n.application_number_or_citation, count(*) -FROM spl.nsde as n -where - product_type = 'HUMAN PRESCRIPTION DRUG' - and - marketing_start_date < '2010-05-01' - and - marketing_end_date > '2010-05-01' -group by n.application_number_or_citation ; - - +---associate trials to marketing start dates +create or replace view public.match_trial_to_marketing_start_date as +select + mttn.nct_id, + n.application_number_or_citation, + min(n.marketing_start_date ) +from match_trial_to_ndc11 mttn + inner join spl.nsde n + on mttn.ndc = n.package_ndc11 +where + n.product_type = 'HUMAN PRESCRIPTION DRUG' + and + n.marketing_category in ('NDA','ANDA','BLA', 'NDA authorized generic', 'NDA AUTHORIZED GENERIC') +group by mttn.nct_id,n.application_number_or_citation +order by mttn.nct_id +; diff --git a/development_sql/views to history.sql b/development_sql/views to history.sql index 3e9d6fc..9d79d31 100644 --- a/development_sql/views to history.sql +++ b/development_sql/views to history.sql @@ -1,5 +1,5 @@ /***************CREATE VIEWS*******************/ -create view if not exists +create or replace view history.match_drugs_to_trials as select nct_id, rxcui, propvalue1 from