You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
3.3 KiB
SQL
134 lines
3.3 KiB
SQL
|
|
/* OVERVIEW
|
|
*
|
|
* This links trials to the first date each drug (indexed by NDA/ANDA etc) is
|
|
* put on the market.
|
|
*
|
|
* It takes 3 views to build up to it.
|
|
* */
|
|
|
|
--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,
|
|
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 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 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
|
|
;
|
|
--running out of space.
|
|
|
|
-- get list of interventions assoicated with trials of interest
|
|
create temp table tmp_interventions as
|
|
select * from ctgov.browse_interventions bi
|
|
where
|
|
bi.mesh_type ='mesh-list'
|
|
and
|
|
bi.nct_id in (select distinct nct_id from history.trial_snapshots)
|
|
;
|
|
select * from tmp_interventions;
|
|
|
|
--drop table tmp_join_interv_rxcui;
|
|
create temp table tmp_join_interv_rxcui as
|
|
select *
|
|
from
|
|
tmp_interventions tint
|
|
inner join
|
|
rxnorm_migrated.rxnorm_props rp
|
|
on tint.downcase_mesh_term = rp.propvalue1
|
|
where propname='RxNorm Name'
|
|
;-- get the rxcui for ingredients
|
|
|
|
select * from tmp_join_interv_rxcui;
|
|
|
|
--filter rxcui -> is human prescribable
|
|
create temp view tmp_view_prescribable as
|
|
select count(*) from rxnorm_migrated.rxnorm_props rp
|
|
where
|
|
rp.propname = 'PRESCRIBABLE'
|
|
and
|
|
rp.propvalue1 = 'Y'
|
|
;
|
|
|
|
--link prescribable to brand ingredients or brand names.
|
|
|
|
|
|
--get relationships of IN -> BN
|
|
select *
|
|
from
|
|
rxnorm_migrated.rxnorm_relations rr
|
|
where
|
|
rr.tty1 in ('IN','MIN')
|
|
and rr.rxcui1 in (select distinct rxcui from tmp_join_interv_rxcui tjir)
|
|
and rr.tty2 = 'BN'
|
|
;
|
|
|
|
|
|
|
|
--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
|
|
rr.tty1 = 'BN'
|
|
and
|
|
rr.tty2 in ('SBD', 'BPCK')
|
|
and
|
|
ah.sab='RXNORM'
|
|
group by mttbi.nct_id, ah.ndc
|
|
order by mttbi.nct_id, ah.ndc
|
|
;
|
|
|
|
|
|
|
|
---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
|
|
;
|
|
|
|
---Number of trials after a certain date
|
|
select nct_id,count(distinct application_number_or_citation)
|
|
from public.match_trial_to_marketing_start_date mttmsd
|
|
where "min" > '2012-06-01'
|
|
group by nct_id
|
|
;
|
|
|
|
|