Began redoing lost formularies work

I lost some work on USP formularies and those are crucial for my analysis.
So, I began reworking them. In the process, I:

- Created a new formularies schema and added a table and some views
  - new file:   Scripts/ConfiguringFormularies.sql
- exported the schema
  - new file:   Scripts/export_tables.sh
  - new file:   export/export_data_postgres_materialized_views.sql
  - new file:   export/export_data_postgres_tables.sql
  - new file:   export/export_data_postgres_views.sql
  - new file:   export/output_2025-01-06_export_data_postgres_materialized_views.sql
  - new file:   export/output_2025-01-06_export_data_postgres_tables.sql
  - new file:   export/output_2025-01-06_export_data_postgres_views.sql
  - new file:   Scripts/Extracting Tables Views and MatViews.sql
- created a new checkpoint/backup of my work
  - modified:   .gitattributes
  - new file:   containers/AACT_Reloader/backup/aact_db_backup_20250106_184236.sql.gz
  - new file:   Scripts/Backup_AACT_work.sh
llm-extraction
Will King 1 year ago
parent 87074aa42b
commit eca4795d2f

1
.gitattributes vendored

@ -4,3 +4,4 @@ containers/AACT_Reloader/2023-09-06_aactdb_with_matches.sql.gz filter=lfs diff=l
other_data/USP[[:space:]]DC/usp_dc_pub_2023_release_2.0_updated_final.csv filter=lfs diff=lfs merge=lfs -text other_data/USP[[:space:]]DC/usp_dc_pub_2023_release_2.0_updated_final.csv filter=lfs diff=lfs merge=lfs -text
other_data/USP[[:space:]]MMG/MMG_v8.0_Alignment_File.csv filter=lfs diff=lfs merge=lfs -text other_data/USP[[:space:]]MMG/MMG_v8.0_Alignment_File.csv filter=lfs diff=lfs merge=lfs -text
other_data/VA[[:space:]]Formulary/PharmacyProductSystem_NationalDrugCodeExtract.csv filter=lfs diff=lfs merge=lfs -text other_data/VA[[:space:]]Formulary/PharmacyProductSystem_NationalDrugCodeExtract.csv filter=lfs diff=lfs merge=lfs -text
containers/AACT_Reloader/backup/aact_db_backup_20250106_184236.sql.gz filter=lfs diff=lfs merge=lfs -text

@ -0,0 +1,9 @@
#!/bin/bash
backup_dir="/mnt/will/large_data/Research_large_data/ClinicalTrialsDataProcessing/containers/AACT_Reloader/backup/"
date_stamp=$(date +%Y%m%d_%H%M%S)
filename="aact_db_backup_${date_stamp}.sql"
podman exec aact_db pg_dump -U root aact_db > "${backup_dir}/${filename}"
# Optional: compress the backup
gzip "${backup_dir}/${filename}"

@ -0,0 +1,98 @@
/*
I started by creating a formularies schema,
then importing the usp - dc formulary data through DBeaver's csv import.
*/
-- DROP SCHEMA "Formularies";
CREATE SCHEMA "Formularies" AUTHORIZATION root;
-- "Formularies".usp_dc_2023 definition
-- Drop table
-- DROP TABLE "Formularies".usp_dc_2023;
CREATE TABLE "Formularies".usp_dc_2023 (
rxcui varchar(15) NULL, --yes even though this is a number, it is represented as a string elsewhere.
tty varchar(10) NULL,
"Name" varchar(256) NULL,
"Related BN" varchar(250) NULL,
"Related DF" varchar(25050) NULL,
"USP Category" varchar(250) NULL,
"USP Class" varchar(250) NULL,
"USP Pharmacotherapeutic Group" varchar(250) NULL,
"API Concept" varchar(250) NULL
);
/*
I then linked the data back on itself with a materialized view, using claude.ai for simplicity.
Claude.ai > I need a postres sql statement to create a materialized view that will take the following table and link from a given rxcui to the other rxcui's that share the same category and class
```sql
CREATE TABLE "Formularies".usp_dc_2023 (
rxcui int4 NULL,
tty varchar(10) NULL,
"Name" varchar(256) NULL,
"Related BN" varchar(250) NULL,
"Related DF" varchar(25050) NULL,
"USP Category" varchar(250) NULL,
"USP Class" varchar(250) NULL,
"USP Pharmacotherapeutic Group" varchar(250) NULL,
"API Concept" varchar(250) NULL
);
```
*/
CREATE MATERIALIZED VIEW "Formularies".rxcui_category_class_links AS
WITH base AS (
SELECT DISTINCT
a.rxcui as source_rxcui,
b.rxcui as linked_rxcui,
a."USP Category" as category,
a."USP Class" as class
FROM "Formularies".usp_dc_2023 a
JOIN "Formularies".usp_dc_2023 b
ON a."USP Category" = b."USP Category"
AND a."USP Class" = b."USP Class"
AND a.rxcui != b.rxcui
WHERE a.rxcui IS NOT NULL
AND b.rxcui IS NOT NULL
)
SELECT * FROM base;
-- Add indexes for better query performance
CREATE INDEX ON "Formularies".rxcui_category_class_links (source_rxcui);
CREATE INDEX ON "Formularies".rxcui_category_class_links (linked_rxcui);
/*
Next step is linking a given nct -> compounds -> formulary alternatives -> compounds -> brands/generics.
I'll' break this into two steps.
1. link formulary alternatives to compounds and brands,
2. link nct_id to formulary alternatives
*/
create materialized view "Formularies".rxcui_to_brand_through_uspdc AS
select
rccl.source_rxcui
,rccl.linked_rxcui
,rccl.category
,rccl."class"
,rr.tty1
,rr.tty2
,rr.rxcui2
from "Formularies".rxcui_category_class_links rccl
join rxnorm_migrated.rxnorm_relations rr on rr.rxcui1 = rccl.linked_rxcui
where rr.tty2 = 'BN'
;
create materialized view match_trial_compound_to_alternate_bn_rxcuis as
select distinct mttbi.nct_id, rtbtu.rxcui2
from match_trials_to_bn_in mttbi
join "Formularies".rxcui_to_brand_through_uspdc rtbtu
on mttbi.bn_or_in_cui = rtbtu.rxcui2
/*
Now I need to create a way to link
*/

@ -0,0 +1,38 @@
SELECT
'CREATE OR REPLACE VIEW ' || schemaname || '.' || viewname || ' AS ' || definition
FROM pg_views
WHERE schemaname != 'pg_catalog'
and schemaname != 'information_schema' -- Replace with your schema name
;
SELECT
'CREATE OR REPLACE MATERIALIZED VIEW ' || schemaname || '.' || viewname || ' AS ' || definition
FROM pg_views
WHERE schemaname != 'pg_catalog'
and schemaname != 'information_schema'
;
SELECT
'CREATE TABLE ' || schemaname || '.' || tablename || E'\n(\n' ||
string_agg(column_definition, E',\n') || E'\n);\n'
FROM (
SELECT
schemaname,
tablename,
column_name || ' ' || data_type ||
CASE
WHEN character_maximum_length IS NOT NULL THEN '(' || character_maximum_length || ')'
ELSE ''
END ||
CASE
WHEN is_nullable = 'NO' THEN ' NOT NULL'
ELSE ''
END as column_definition
FROM pg_catalog.pg_tables t
JOIN information_schema.columns c
ON t.schemaname = c.table_schema
AND t.tablename = c.table_name
WHERE schemaname != 'pg_catalog'
and schemaname != 'information_schema'-- Replace with your schema name
) t
GROUP BY schemaname, tablename;

@ -0,0 +1,35 @@
#!/bin/bash
set -x
# Uses
#
# Defauls
if [[ $# -lt 1 ]]; then
echo "Usage: pg_export container_name [database_name] [username]"
return 1
fi
CONTAINER=$1
DBNAME=${2:-aact_db}
USER=${3:-root}
#
# for sqlfile in ../export/export_data_*.sql; do
# if [[ -f "$sqlfile" ]]; then
# outfile="../export/output_$(date -I)_$(basename ${sqlfile%.sql}).sql"
# # podman exec -t "$CONTAINER" psql -U "$USER" -d "$DBNAME" -t -A -f - < "$sqlfile" > "$outfile"
# # podman exec "$CONTAINER" psql -U "$USER" -d "$DBNAME" -t -A -f "$sqlfile" > "$outfile"
# podman cp "$sqlfile" "$CONTAINER":/tmp/query.sql
# podman exec "$CONTAINER" psql -U "$USER" -d "$DBNAME" -t -A -f /tmp/query.sql > "$outfile"
# fi
# done
#
for sqlfile in ../export/export_data_*.sql; do
if [[ -f "$sqlfile" ]]; then
outfile="../export/output_$(date -I)_$(basename ${sqlfile%.sql}).sql"
podman cp "$sqlfile" "$CONTAINER":/tmp/query.sql
podman exec "$CONTAINER" psql -U "$USER" -d "$DBNAME" -f "/tmp/query.sql" > "$outfile"
fi
done

@ -0,0 +1,6 @@
SELECT
'CREATE OR REPLACE MATERIALIZED VIEW ' || schemaname || '.' || viewname || ' AS ' || definition
FROM pg_views
WHERE schemaname != 'pg_catalog'
and schemaname != 'information_schema'
;

@ -0,0 +1,24 @@
SELECT
'CREATE TABLE ' || schemaname || '.' || tablename || E'\n(\n' ||
string_agg(column_definition, E',\n') || E'\n);\n'
FROM (
SELECT
schemaname,
tablename,
column_name || ' ' || data_type ||
CASE
WHEN character_maximum_length IS NOT NULL THEN '(' || character_maximum_length || ')'
ELSE ''
END ||
CASE
WHEN is_nullable = 'NO' THEN ' NOT NULL'
ELSE ''
END as column_definition
FROM pg_catalog.pg_tables t
JOIN information_schema.columns c
ON t.schemaname = c.table_schema
AND t.tablename = c.table_name
WHERE schemaname != 'pg_catalog'
and schemaname != 'information_schema'-- Replace with your schema name
) t
GROUP BY schemaname, tablename;

@ -0,0 +1,6 @@
SELECT
'CREATE OR REPLACE VIEW ' || schemaname || '.' || viewname || ' AS ' || definition
FROM pg_views
WHERE schemaname != 'pg_catalog'
and schemaname != 'information_schema' -- Replace with your schema name
;

@ -0,0 +1,415 @@
?column?
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_browse_conditions AS SELECT browse_conditions.nct_id, +
array_to_string(array_agg(DISTINCT browse_conditions.mesh_term), '|'::text) AS names +
FROM ctgov.browse_conditions +
GROUP BY browse_conditions.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_browse_interventions AS SELECT browse_interventions.nct_id, +
array_to_string(array_agg(browse_interventions.mesh_term), '|'::text) AS names +
FROM ctgov.browse_interventions +
GROUP BY browse_interventions.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_cities AS SELECT facilities.nct_id, +
array_to_string(array_agg(DISTINCT facilities.city), '|'::text) AS names +
FROM ctgov.facilities +
GROUP BY facilities.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_conditions AS SELECT conditions.nct_id, +
array_to_string(array_agg(DISTINCT conditions.name), '|'::text) AS names +
FROM ctgov.conditions +
GROUP BY conditions.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_countries AS SELECT countries.nct_id, +
array_to_string(array_agg(DISTINCT countries.name), '|'::text) AS names +
FROM ctgov.countries +
WHERE (countries.removed IS NOT TRUE) +
GROUP BY countries.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_design_outcomes AS SELECT design_outcomes.nct_id, +
array_to_string(array_agg(DISTINCT design_outcomes.measure), '|'::text) AS names +
FROM ctgov.design_outcomes +
GROUP BY design_outcomes.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_facilities AS SELECT facilities.nct_id, +
array_to_string(array_agg(facilities.name), '|'::text) AS names +
FROM ctgov.facilities +
GROUP BY facilities.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_group_types AS SELECT design_groups.nct_id, +
array_to_string(array_agg(DISTINCT design_groups.group_type), '|'::text) AS names +
FROM ctgov.design_groups +
GROUP BY design_groups.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_id_information AS SELECT id_information.nct_id, +
array_to_string(array_agg(DISTINCT id_information.id_value), '|'::text) AS names +
FROM ctgov.id_information +
GROUP BY id_information.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_intervention_types AS SELECT interventions.nct_id, +
array_to_string(array_agg(interventions.intervention_type), '|'::text) AS names +
FROM ctgov.interventions +
GROUP BY interventions.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_interventions AS SELECT interventions.nct_id, +
array_to_string(array_agg(interventions.name), '|'::text) AS names +
FROM ctgov.interventions +
GROUP BY interventions.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_keywords AS SELECT keywords.nct_id, +
array_to_string(array_agg(DISTINCT keywords.name), '|'::text) AS names +
FROM ctgov.keywords +
GROUP BY keywords.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_overall_official_affiliations AS SELECT overall_officials.nct_id, +
array_to_string(array_agg(overall_officials.affiliation), '|'::text) AS names +
FROM ctgov.overall_officials +
GROUP BY overall_officials.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_overall_officials AS SELECT overall_officials.nct_id, +
array_to_string(array_agg(overall_officials.name), '|'::text) AS names +
FROM ctgov.overall_officials +
GROUP BY overall_officials.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_primary_outcome_measures AS SELECT design_outcomes.nct_id, +
array_to_string(array_agg(DISTINCT design_outcomes.measure), '|'::text) AS names +
FROM ctgov.design_outcomes +
WHERE ((design_outcomes.outcome_type)::text = 'primary'::text) +
GROUP BY design_outcomes.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_secondary_outcome_measures AS SELECT design_outcomes.nct_id, +
array_to_string(array_agg(DISTINCT design_outcomes.measure), '|'::text) AS names +
FROM ctgov.design_outcomes +
WHERE ((design_outcomes.outcome_type)::text = 'secondary'::text) +
GROUP BY design_outcomes.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_sponsors AS SELECT sponsors.nct_id, +
array_to_string(array_agg(DISTINCT sponsors.name), '|'::text) AS names +
FROM ctgov.sponsors +
GROUP BY sponsors.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.all_states AS SELECT facilities.nct_id, +
array_to_string(array_agg(DISTINCT facilities.state), '|'::text) AS names +
FROM ctgov.facilities +
GROUP BY facilities.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.categories AS SELECT search_results.id, +
search_results.nct_id, +
search_results.name, +
search_results.created_at, +
search_results.updated_at, +
search_results."grouping", +
search_results.study_search_id +
FROM ctgov.search_results;
CREATE OR REPLACE MATERIALIZED VIEW ctgov.covid_19_studies AS SELECT s.nct_id, +
s.overall_status, +
s.study_type, +
s.official_title, +
s.acronym, +
s.phase, +
s.why_stopped, +
s.has_dmc, +
s.enrollment, +
s.is_fda_regulated_device, +
s.is_fda_regulated_drug, +
s.is_unapproved_device, +
s.has_expanded_access, +
s.study_first_submitted_date, +
s.last_update_posted_date, +
s.results_first_posted_date, +
s.start_date, +
s.primary_completion_date, +
s.completion_date, +
s.study_first_posted_date, +
cv.number_of_facilities, +
cv.has_single_facility, +
cv.nlm_download_date, +
s.number_of_arms, +
s.number_of_groups, +
sp.name AS lead_sponsor, +
aid.names AS other_ids, +
e.gender, +
e.gender_based, +
e.gender_description, +
e.population, +
e.minimum_age, +
e.maximum_age, +
e.criteria, +
e.healthy_volunteers, +
ak.names AS keywords, +
ai.names AS interventions, +
ac.names AS conditions, +
d.primary_purpose, +
d.allocation, +
d.observational_model, +
d.intervention_model, +
d.masking, +
d.subject_masked, +
d.caregiver_masked, +
d.investigator_masked, +
d.outcomes_assessor_masked, +
ado.names AS design_outcomes, +
bs.description AS brief_summary, +
dd.description AS detailed_description +
FROM (((((((((((ctgov.studies s +
FULL JOIN ctgov.all_conditions ac ON (((s.nct_id)::text = (ac.nct_id)::text))) +
FULL JOIN ctgov.all_id_information aid ON (((s.nct_id)::text = (aid.nct_id)::text))) +
FULL JOIN ctgov.all_design_outcomes ado ON (((s.nct_id)::text = (ado.nct_id)::text))) +
FULL JOIN ctgov.all_keywords ak ON (((s.nct_id)::text = (ak.nct_id)::text))) +
FULL JOIN ctgov.all_interventions ai ON (((s.nct_id)::text = (ai.nct_id)::text))) +
FULL JOIN ctgov.sponsors sp ON (((s.nct_id)::text = (sp.nct_id)::text))) +
FULL JOIN ctgov.calculated_values cv ON (((s.nct_id)::text = (cv.nct_id)::text))) +
FULL JOIN ctgov.designs d ON (((s.nct_id)::text = (d.nct_id)::text))) +
FULL JOIN ctgov.eligibilities e ON (((s.nct_id)::text = (e.nct_id)::text))) +
FULL JOIN ctgov.brief_summaries bs ON (((s.nct_id)::text = (bs.nct_id)::text))) +
FULL JOIN ctgov.detailed_descriptions dd ON (((s.nct_id)::text = (dd.nct_id)::text))) +
WHERE (((sp.lead_or_collaborator)::text = 'lead'::text) AND ((s.nct_id)::text IN ( SELECT search_results.nct_id +
FROM ctgov.search_results +
WHERE ((search_results.name)::text = 'covid-19'::text))));
CREATE OR REPLACE MATERIALIZED VIEW history.match_drugs_to_trials AS SELECT bi.nct_id, +
rp.rxcui, +
rp.propvalue1 +
FROM (ctgov.browse_interventions bi +
JOIN rxnorm_migrated.rxnorm_props rp ON (((bi.downcase_mesh_term)::text = (rp.propvalue1)::text))) +
WHERE (((rp.propname)::text = 'RxNorm Name'::text) AND ((bi.nct_id)::text IN ( SELECT trial_snapshots.nct_id +
FROM history.trial_snapshots)));
CREATE OR REPLACE MATERIALIZED VIEW http.most_recent_download_status AS SELECT t.nct_id, +
t.status, +
t.update_timestamp +
FROM ( SELECT download_status.id, +
download_status.nct_id, +
download_status.status, +
download_status.update_timestamp, +
row_number() OVER (PARTITION BY download_status.nct_id ORDER BY download_status.update_timestamp DESC) AS rn +
FROM http.download_status) t +
WHERE (t.rn = 1) +
ORDER BY t.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW public.time_between_submission_and_start_view AS SELECT s.nct_id, +
s.start_date, +
ts.version, +
ts.submission_date, +
abs(((EXTRACT(epoch FROM (ts.submission_date - (s.start_date)::timestamp without time zone)))::double precision / (((24 * 60) * 60))::double precision)) AS start_deviance +
FROM (ctgov.studies s +
JOIN history.trial_snapshots ts ON (((s.nct_id)::text = (ts.nct_id)::text))) +
WHERE ((s.nct_id)::text IN ( SELECT DISTINCT tti.nct_id +
FROM "DiseaseBurden".trial_to_icd10 tti));
CREATE OR REPLACE MATERIALIZED VIEW public.rank_proximity_to_start_time_view AS SELECT cte.nct_id, +
cte.version, +
row_number() OVER (PARTITION BY cte.nct_id ORDER BY cte.start_deviance) AS rownum, +
cte.submission_date, +
cte.start_deviance, +
cte.start_date, +
ts.primary_completion_date, +
ts.primary_completion_date_category, +
ts.overall_status, +
ts.enrollment, +
ts.enrollment_category +
FROM (time_between_submission_and_start_view cte +
JOIN history.trial_snapshots ts ON ((((cte.nct_id)::text = (ts.nct_id)::text) AND (cte.version = ts.version))));
CREATE OR REPLACE MATERIALIZED VIEW public.enrollment_closest_to_start_view AS SELECT cte2.nct_id, +
min(cte2.rownum) AS enrollment_source +
FROM rank_proximity_to_start_time_view cte2 +
WHERE (cte2.enrollment IS NOT NULL) +
GROUP BY cte2.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW public.match_trials_to_bn_in AS WITH trialncts AS ( +
SELECT DISTINCT ts.nct_id +
FROM history.trial_snapshots ts +
) +
SELECT bi.nct_id, +
bi.downcase_mesh_term, +
rr.tty2, +
rr.rxcui2 AS bn_or_in_cui, +
count(*) AS count +
FROM ((ctgov.browse_interventions bi +
LEFT JOIN rxnorm_migrated.rxnorm_props rp ON (((bi.downcase_mesh_term)::text = (rp.propvalue1)::text))) +
LEFT JOIN rxnorm_migrated.rxnorm_relations rr ON ((rr.rxcui1 = rp.rxcui))) +
WHERE (((bi.nct_id)::text IN ( SELECT trialncts.nct_id +
FROM trialncts)) AND ((bi.mesh_type)::text = 'mesh-list'::text) AND ((rp.propname)::text = 'Active_ingredient_name'::text) AND (rr.tty2 = ANY (ARRAY['BN'::bpchar, 'IN'::bpchar, 'MIN'::bpchar]))) +
GROUP BY bi.nct_id, bi.downcase_mesh_term, rr.tty2, rr.rxcui2 +
ORDER BY bi.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW public.match_trial_to_ndc11 AS SELECT mttbi.nct_id, +
ah.ndc, +
count(*) AS count +
FROM ((match_trials_to_bn_in mttbi +
LEFT JOIN rxnorm_migrated.rxnorm_relations rr ON ((mttbi.bn_or_in_cui = rr.rxcui1))) +
LEFT JOIN rxnorm_migrated."ALLNDC_HISTORY" ah ON ((rr.rxcui2 = ah.rxcui))) +
WHERE ((rr.tty1 = 'BN'::bpchar) AND (rr.tty2 = ANY (ARRAY['SBD'::bpchar, 'BPCK'::bpchar])) AND ((ah.sab)::text = 'RXNORM'::text)) +
GROUP BY mttbi.nct_id, ah.ndc +
ORDER BY mttbi.nct_id, ah.ndc;
CREATE OR REPLACE MATERIALIZED VIEW public.match_trial_to_marketing_start_date AS SELECT mttn.nct_id, +
n.application_number_or_citation, +
min(n.marketing_start_date) AS min +
FROM (match_trial_to_ndc11 mttn +
JOIN spl.nsde n ON ((mttn.ndc = (n.package_ndc11)::bpchar))) +
WHERE (((n.product_type)::text = 'HUMAN PRESCRIPTION DRUG'::text) AND ((n.marketing_category)::text = ANY (ARRAY[('NDA'::character varying)::text, ('ANDA'::character varying)::text, ('BLA'::character varying)::text, ('NDA authorized generic'::character varying)::text, ('NDA AUTHORIZED GENERIC'::character varying)::text]))) +
GROUP BY mttn.nct_id, n.application_number_or_citation +
ORDER BY mttn.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW public.view_burdens_cte AS SELECT b.measure_id, +
b.location_id, +
b.sex_id, +
b.age_id, +
b.cause_id, +
b.metric_id, +
b.year, +
b.val, +
b.upper_95, +
b.lower_95, +
b.key_column +
FROM "DiseaseBurden".burdens b +
WHERE ((b.sex_id = 3) AND (b.metric_id = 1) AND (b.measure_id = 2) AND (b.age_id = 22));
CREATE OR REPLACE MATERIALIZED VIEW public.view_burdens_cte2 AS SELECT c1.cause_id, +
c1.year, +
c1.val AS h_sdi_val, +
c1.upper_95 AS h_sdi_u95, +
c1.lower_95 AS h_sdi_l95, +
c2.val AS hm_sdi_val, +
c2.upper_95 AS hm_sdi_u95, +
c2.lower_95 AS hm_sdi_l95, +
c3.val AS m_sdi_val, +
c3.upper_95 AS m_sdi_u95, +
c3.lower_95 AS m_sdi_l95, +
c4.val AS lm_sdi_val, +
c4.upper_95 AS lm_sdi_u95, +
c4.lower_95 AS lm_sdi_l95, +
c5.val AS l_sdi_val, +
c5.upper_95 AS l_sdi_u95, +
c5.lower_95 AS l_sdi_l95 +
FROM ((((view_burdens_cte c1 +
JOIN view_burdens_cte c2 ON (((c1.cause_id = c2.cause_id) AND (c1.year = c2.year)))) +
JOIN view_burdens_cte c3 ON (((c1.cause_id = c3.cause_id) AND (c1.year = c3.year)))) +
JOIN view_burdens_cte c4 ON (((c1.cause_id = c4.cause_id) AND (c1.year = c4.year)))) +
JOIN view_burdens_cte c5 ON (((c1.cause_id = c5.cause_id) AND (c1.year = c5.year)))) +
WHERE ((c1.location_id = 44635) AND (c2.location_id = 44634) AND (c3.location_id = 44639) AND (c4.location_id = 44636) AND (c5.location_id = 44637));
CREATE OR REPLACE MATERIALIZED VIEW public.view_cte AS SELECT ts.nct_id, +
ts.primary_completion_date, +
ts.primary_completion_date_category, +
ts.enrollment, +
ts.start_date, +
ts.enrollment_category, +
ts.overall_status, +
min(ts.submission_date) AS earliest_date_observed +
FROM history.trial_snapshots ts +
WHERE (((ts.nct_id)::text IN ( SELECT DISTINCT tti.nct_id +
FROM "DiseaseBurden".trial_to_icd10 tti +
WHERE (tti.approved = 'accepted'::"DiseaseBurden".validation_type))) AND (ts.submission_date >= ts.start_date) AND (ts.overall_status <> ALL (ARRAY['Completed'::history.study_statuses, 'Terminated'::history.study_statuses]))) +
GROUP BY ts.nct_id, ts.primary_completion_date, ts.primary_completion_date_category, ts.start_date, ts.enrollment, ts.enrollment_category, ts.overall_status;
CREATE OR REPLACE MATERIALIZED VIEW public.view_disbur_cte0 AS SELECT tti.nct_id, +
tti.ui, +
tti.condition, +
itc.cause_text, +
ch.cause_id, +
ch.level +
FROM (("DiseaseBurden".trial_to_icd10 tti +
JOIN "DiseaseBurden".icd10_to_cause itc ON ((replace(replace((tti.ui)::text, '-'::text, ''::text), '.'::text, ''::text) = replace(replace((itc.code)::text, '-'::text, ''::text), '.'::text, ''::text)))) +
JOIN "DiseaseBurden".cause_hierarchy ch ON (((itc.cause_text)::text = (ch.cause_name)::text))) +
WHERE (tti.approved = 'accepted'::"DiseaseBurden".validation_type);
CREATE OR REPLACE MATERIALIZED VIEW public.view_disbur_cte AS SELECT view_disbur_cte0.nct_id, +
max(view_disbur_cte0.level) AS max_level +
FROM view_disbur_cte0 +
GROUP BY view_disbur_cte0.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW public.view_trial_to_cause AS SELECT tti.nct_id, +
tti.ui, +
tti.condition, +
itc.cause_text, +
ch.cause_id, +
ch.level +
FROM (("DiseaseBurden".trial_to_icd10 tti +
JOIN "DiseaseBurden".icd10_to_cause itc ON ((replace(replace((tti.ui)::text, '-'::text, ''::text), '.'::text, ''::text) = replace(replace((itc.code)::text, '-'::text, ''::text), '.'::text, ''::text)))) +
JOIN "DiseaseBurden".cause_hierarchy ch ON (((itc.cause_text)::text = (ch.cause_name)::text))) +
WHERE (tti.approved = 'accepted'::"DiseaseBurden".validation_type) +
ORDER BY tti.nct_id;
CREATE OR REPLACE MATERIALIZED VIEW public.view_disbur_cte2 AS SELECT ttc.nct_id, +
ttc.ui, +
ttc.condition, +
ttc.cause_text, +
ttc.cause_id, +
disbur_cte.max_level +
FROM (view_trial_to_cause ttc +
JOIN view_disbur_cte disbur_cte ON (((disbur_cte.nct_id)::text = (ttc.nct_id)::text))) +
WHERE (ttc.level = disbur_cte.max_level) +
GROUP BY ttc.nct_id, ttc.ui, ttc.condition, ttc.cause_text, ttc.cause_id, disbur_cte.max_level +
ORDER BY ttc.nct_id, ttc.ui;
CREATE OR REPLACE MATERIALIZED VIEW public.view_disbur_cte3 AS SELECT disbur_cte2.nct_id, +
SUBSTRING(disbur_cte2.ui FROM 1 FOR 3) AS code, +
disbur_cte2.condition, +
disbur_cte2.cause_text, +
disbur_cte2.cause_id, +
ic.chapter_code AS category_id, +
ic.group_name, +
disbur_cte2.max_level +
FROM (view_disbur_cte2 disbur_cte2 +
JOIN "DiseaseBurden".icd10_categories ic ON (((SUBSTRING(disbur_cte2.ui FROM 1 FOR 3) <= (ic.end_code)::text) AND (SUBSTRING(disbur_cte2.ui FROM 1 FOR 3) >= (ic.start_code)::text)))) +
WHERE (ic.level = 1);
CREATE OR REPLACE MATERIALIZED VIEW public.formatted_data AS SELECT cte.nct_id, +
cte.start_date, +
cte.enrollment AS current_enrollment, +
cte.enrollment_category, +
cte.overall_status AS current_status, +
cte.earliest_date_observed, +
(EXTRACT(epoch FROM (cte.earliest_date_observed - cte.start_date)) / EXTRACT(epoch FROM (cte.primary_completion_date - cte.start_date))) AS elapsed_duration, +
count(DISTINCT mttmsd.application_number_or_citation) AS n_brands, +
dbc3.code, +
dbc3.condition, +
dbc3.cause_text, +
dbc3.cause_id, +
dbc3.category_id, +
dbc3.group_name, +
dbc3.max_level, +
b.year, +
b.h_sdi_val, +
b.h_sdi_u95, +
b.h_sdi_l95, +
b.hm_sdi_val, +
b.hm_sdi_u95, +
b.hm_sdi_l95, +
b.m_sdi_val, +
b.m_sdi_u95, +
b.m_sdi_l95, +
b.lm_sdi_val, +
b.lm_sdi_u95, +
b.lm_sdi_l95, +
b.l_sdi_val, +
b.l_sdi_u95, +
b.l_sdi_l95 +
FROM (((view_cte cte +
JOIN match_trial_to_marketing_start_date mttmsd ON (((cte.nct_id)::text = (mttmsd.nct_id)::text))) +
JOIN view_disbur_cte3 dbc3 ON (((dbc3.nct_id)::text = (cte.nct_id)::text))) +
JOIN view_burdens_cte2 b ON (((b.cause_id = dbc3.cause_id) AND (EXTRACT(year FROM b.year) = EXTRACT(year FROM cte.earliest_date_observed))))) +
WHERE (mttmsd.min <= cte.earliest_date_observed) +
GROUP BY cte.nct_id, cte.start_date, cte.enrollment, cte.enrollment_category, cte.overall_status, cte.earliest_date_observed, (EXTRACT(epoch FROM (cte.earliest_date_observed - cte.start_date)) / EXTRACT(epoch FROM (cte.primary_completion_date - cte.start_date))), dbc3.code, dbc3.condition, dbc3.cause_text, dbc3.cause_id, dbc3.category_id, dbc3.group_name, dbc3.max_level, b.cause_id, b.year, b.h_sdi_val, b.h_sdi_u95, b.h_sdi_l95, b.hm_sdi_val, b.hm_sdi_u95, b.hm_sdi_l95, b.m_sdi_val, b.m_sdi_u95, b.m_sdi_l95, b.lm_sdi_val, b.lm_sdi_u95, b.lm_sdi_l95, b.l_sdi_val, b.l_sdi_u95, b.l_sdi_l95+
ORDER BY cte.nct_id, cte.earliest_date_observed;
CREATE OR REPLACE MATERIALIZED VIEW public.formatted_data_with_planned_enrollment AS SELECT f.nct_id, +
f.start_date, +
f.current_enrollment, +
f.enrollment_category, +
f.current_status, +
f.earliest_date_observed, +
f.elapsed_duration, +
f.n_brands, +
f.code, +
f.condition, +
f.cause_text, +
f.cause_id, +
f.category_id, +
f.group_name, +
f.max_level, +
f.year, +
f.h_sdi_val, +
f.h_sdi_u95, +
f.h_sdi_l95, +
f.hm_sdi_val, +
f.hm_sdi_u95, +
f.hm_sdi_l95, +
f.m_sdi_val, +
f.m_sdi_u95, +
f.m_sdi_l95, +
f.lm_sdi_val, +
f.lm_sdi_u95, +
f.lm_sdi_l95, +
f.l_sdi_val, +
f.l_sdi_u95, +
f.l_sdi_l95, +
s.overall_status AS final_status, +
c2a.version, +
c2a.enrollment AS planned_enrollment +
FROM (((formatted_data f +
JOIN ctgov.studies s ON (((f.nct_id)::text = (s.nct_id)::text))) +
JOIN enrollment_closest_to_start_view c3e ON (((c3e.nct_id)::text = (f.nct_id)::text))) +
JOIN rank_proximity_to_start_time_view c2a ON ((((c3e.nct_id)::text = (c2a.nct_id)::text) AND (c3e.enrollment_source = c2a.rownum))));
CREATE OR REPLACE MATERIALIZED VIEW http.trials_to_download AS SELECT most_recent_download_status.nct_id +
FROM http.most_recent_download_status +
WHERE (most_recent_download_status.status = 'Of Interest'::http.history_download_status);
CREATE OR REPLACE MATERIALIZED VIEW public.primary_design_outcomes AS SELECT do2.id, +
do2.nct_id, +
do2.outcome_type, +
do2.measure, +
do2.time_frame, +
do2.population, +
do2.description +
FROM ctgov.design_outcomes do2 +
WHERE (((do2.outcome_type)::text = 'primary'::text) AND ((do2.nct_id)::text IN ( SELECT DISTINCT fd.nct_id +
FROM formatted_data fd)));
(40 rows)

@ -0,0 +1,920 @@
?column?
-------------------------------------------------------
CREATE TABLE DiseaseBurden.age_group +
( +
id integer NOT NULL, +
age_group character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.burdens +
( +
measure_id integer NOT NULL, +
location_id integer NOT NULL, +
sex_id integer NOT NULL, +
age_id integer NOT NULL, +
cause_id integer NOT NULL, +
metric_id integer NOT NULL, +
year date NOT NULL, +
val double precision NOT NULL, +
upper_95 double precision NOT NULL, +
lower_95 double precision NOT NULL, +
key_column integer NOT NULL +
); +
CREATE TABLE DiseaseBurden.cause +
( +
id integer NOT NULL, +
cause character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.cause_hierarchy +
( +
cause_id integer NOT NULL, +
cause_name character varying, +
parent_id integer NOT NULL, +
parent_nae character varying, +
level integer NOT NULL +
); +
CREATE TABLE DiseaseBurden.icd10_categories +
( +
id integer NOT NULL, +
start_code character varying NOT NULL, +
end_code character varying NOT NULL, +
group_name character varying NOT NULL, +
level integer NOT NULL, +
chapter character varying NOT NULL, +
chapter_code integer NOT NULL +
); +
CREATE TABLE DiseaseBurden.icd10_to_cause +
( +
id integer NOT NULL, +
code character varying NOT NULL, +
cause_text character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.location +
( +
id integer NOT NULL, +
location character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.measures +
( +
id integer NOT NULL, +
label character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.metric +
( +
id integer NOT NULL, +
metric_label character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.rei +
( +
id integer NOT NULL, +
rei_label character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.sex +
( +
id integer NOT NULL, +
sex character varying NOT NULL +
); +
CREATE TABLE DiseaseBurden.trial_to_icd10 +
( +
id integer NOT NULL, +
nct_id character varying NOT NULL, +
condition character varying NOT NULL, +
ui character varying, +
uri character varying, +
rootsource character varying, +
name character varying, +
source character varying, +
approved USER-DEFINED, +
approval_timestamp timestamp without time zone +
); +
CREATE TABLE Formularies.usp_dc_2023 +
( +
USP Class character varying(250), +
USP Pharmacotherapeutic Group character varying(250),+
API Concept character varying(250), +
rxcui character varying(15), +
tty character varying(10), +
Name character varying(256), +
Related BN character varying(250), +
Related DF character varying(25050), +
USP Category character varying(250) +
); +
CREATE TABLE ctgov.active_storage_attachments +
( +
id bigint NOT NULL, +
name character varying NOT NULL, +
record_type character varying NOT NULL, +
record_id bigint NOT NULL, +
blob_id bigint NOT NULL, +
created_at timestamp without time zone NOT NULL +
); +
CREATE TABLE ctgov.active_storage_blobs +
( +
metadata text, +
checksum character varying NOT NULL, +
byte_size bigint NOT NULL, +
created_at timestamp without time zone NOT NULL, +
id bigint NOT NULL, +
key character varying NOT NULL, +
filename character varying NOT NULL, +
content_type character varying +
); +
CREATE TABLE ctgov.baseline_counts +
( +
count integer, +
nct_id character varying, +
id integer NOT NULL, +
ctgov_group_code character varying, +
units character varying, +
scope character varying, +
result_group_id integer +
); +
CREATE TABLE ctgov.baseline_measurements +
( +
param_value character varying, +
id integer NOT NULL, +
nct_id character varying, +
result_group_id integer, +
ctgov_group_code character varying, +
classification character varying, +
category character varying, +
title character varying, +
description text, +
units character varying, +
param_type character varying, +
param_value_num numeric, +
dispersion_type character varying, +
dispersion_value character varying, +
dispersion_value_num numeric, +
dispersion_lower_limit numeric, +
dispersion_upper_limit numeric, +
explanation_of_na character varying, +
number_analyzed integer, +
number_analyzed_units character varying, +
population_description character varying, +
calculate_percentage character varying +
); +
CREATE TABLE ctgov.brief_summaries +
( +
nct_id character varying, +
id integer NOT NULL, +
description text +
); +
CREATE TABLE ctgov.browse_conditions +
( +
mesh_term character varying, +
id integer NOT NULL, +
mesh_type character varying, +
downcase_mesh_term character varying, +
nct_id character varying +
); +
CREATE TABLE ctgov.browse_interventions +
( +
downcase_mesh_term character varying, +
mesh_term character varying, +
mesh_type character varying, +
id integer NOT NULL, +
nct_id character varying +
); +
CREATE TABLE ctgov.calculated_values +
( +
number_of_secondary_outcomes_to_measure integer, +
maximum_age_unit character varying, +
minimum_age_unit character varying, +
maximum_age_num integer, +
minimum_age_num integer, +
has_single_facility boolean, +
has_us_facility boolean, +
months_to_report_results integer, +
number_of_sae_subjects integer, +
were_results_reported boolean, +
registered_in_calendar_year integer, +
nlm_download_date date, +
actual_duration integer, +
id integer NOT NULL, +
nct_id character varying, +
number_of_facilities integer, +
number_of_nsae_subjects integer, +
number_of_other_outcomes_to_measure integer, +
number_of_primary_outcomes_to_measure integer +
); +
CREATE TABLE ctgov.central_contacts +
( +
phone_extension character varying, +
nct_id character varying, +
role character varying, +
id integer NOT NULL, +
contact_type character varying, +
name character varying, +
phone character varying, +
email character varying +
); +
CREATE TABLE ctgov.conditions +
( +
downcase_name character varying, +
name character varying, +
id integer NOT NULL, +
nct_id character varying +
); +
CREATE TABLE ctgov.countries +
( +
name character varying, +
nct_id character varying, +
id integer NOT NULL, +
removed boolean +
); +
CREATE TABLE ctgov.design_group_interventions +
( +
id integer NOT NULL, +
design_group_id integer, +
intervention_id integer, +
nct_id character varying +
); +
CREATE TABLE ctgov.design_groups +
( +
group_type character varying, +
id integer NOT NULL, +
nct_id character varying, +
title character varying, +
description text +
); +
CREATE TABLE ctgov.design_outcomes +
( +
description text, +
measure text, +
outcome_type character varying, +
nct_id character varying, +
id integer NOT NULL, +
time_frame text, +
population character varying +
); +
CREATE TABLE ctgov.designs +
( +
masking_description text, +
subject_masked boolean, +
caregiver_masked boolean, +
investigator_masked boolean, +
outcomes_assessor_masked boolean, +
id integer NOT NULL, +
nct_id character varying, +
allocation character varying, +
intervention_model character varying, +
observational_model character varying, +
primary_purpose character varying, +
time_perspective character varying, +
masking character varying, +
intervention_model_description text +
); +
CREATE TABLE ctgov.detailed_descriptions +
( +
description text, +
nct_id character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.documents +
( +
comment text, +
id integer NOT NULL, +
url character varying, +
document_type character varying, +
nct_id character varying, +
document_id character varying +
); +
CREATE TABLE ctgov.drop_withdrawals +
( +
period character varying, +
reason character varying, +
count integer, +
ctgov_group_code character varying, +
result_group_id integer, +
nct_id character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.eligibilities +
( +
older_adult boolean, +
id integer NOT NULL, +
nct_id character varying, +
sampling_method character varying, +
gender character varying, +
minimum_age character varying, +
maximum_age character varying, +
healthy_volunteers character varying, +
population text, +
criteria text, +
gender_description text, +
gender_based boolean, +
adult boolean, +
child boolean +
); +
CREATE TABLE ctgov.facilities +
( +
id integer NOT NULL, +
nct_id character varying, +
status character varying, +
name character varying, +
city character varying, +
state character varying, +
zip character varying, +
country character varying +
); +
CREATE TABLE ctgov.facility_contacts +
( +
contact_type character varying, +
name character varying, +
email character varying, +
id integer NOT NULL, +
nct_id character varying, +
phone character varying, +
phone_extension character varying, +
facility_id integer +
); +
CREATE TABLE ctgov.facility_investigators +
( +
nct_id character varying, +
id integer NOT NULL, +
facility_id integer, +
role character varying, +
name character varying +
); +
CREATE TABLE ctgov.file_records +
( +
url character varying, +
id bigint NOT NULL, +
filename character varying, +
file_size bigint, +
file_type character varying, +
created_at timestamp without time zone NOT NULL, +
updated_at timestamp without time zone NOT NULL +
); +
CREATE TABLE ctgov.id_information +
( +
id integer NOT NULL, +
id_source character varying, +
nct_id character varying, +
id_link character varying, +
id_value character varying, +
id_type_description character varying, +
id_type character varying +
); +
CREATE TABLE ctgov.intervention_other_names +
( +
name character varying, +
nct_id character varying, +
intervention_id integer, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.interventions +
( +
id integer NOT NULL, +
name character varying, +
intervention_type character varying, +
description text, +
nct_id character varying +
); +
CREATE TABLE ctgov.ipd_information_types +
( +
name character varying, +
nct_id character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.keywords +
( +
name character varying, +
id integer NOT NULL, +
nct_id character varying, +
downcase_name character varying +
); +
CREATE TABLE ctgov.links +
( +
nct_id character varying, +
id integer NOT NULL, +
description text, +
url character varying +
); +
CREATE TABLE ctgov.mesh_headings +
( +
qualifier character varying, +
id integer NOT NULL, +
subcategory character varying, +
heading character varying +
); +
CREATE TABLE ctgov.mesh_terms +
( +
description character varying, +
tree_number character varying, +
qualifier character varying, +
id integer NOT NULL, +
downcase_mesh_term character varying, +
mesh_term character varying +
); +
CREATE TABLE ctgov.milestones +
( +
count_units character varying, +
count integer, +
description text, +
period character varying, +
title character varying, +
ctgov_group_code character varying, +
result_group_id integer, +
nct_id character varying, +
id integer NOT NULL, +
milestone_description character varying +
); +
CREATE TABLE ctgov.outcome_analyses +
( +
other_analysis_description text, +
param_type character varying, +
non_inferiority_type character varying, +
outcome_id integer, +
nct_id character varying, +
id integer NOT NULL, +
param_value numeric, +
dispersion_type character varying, +
dispersion_value numeric, +
p_value_modifier character varying, +
p_value double precision, +
ci_n_sides character varying, +
ci_percent numeric, +
ci_lower_limit numeric, +
ci_upper_limit numeric, +
ci_upper_limit_na_comment character varying, +
p_value_description character varying, +
method character varying, +
method_description text, +
estimate_description text, +
groups_description text, +
non_inferiority_description text +
); +
CREATE TABLE ctgov.outcome_analysis_groups +
( +
result_group_id integer, +
ctgov_group_code character varying, +
id integer NOT NULL, +
nct_id character varying, +
outcome_analysis_id integer +
); +
CREATE TABLE ctgov.outcome_counts +
( +
result_group_id integer, +
ctgov_group_code character varying, +
scope character varying, +
units character varying, +
count integer, +
outcome_id integer, +
nct_id character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.outcome_measurements +
( +
result_group_id integer, +
ctgov_group_code character varying, +
classification character varying, +
category character varying, +
title character varying, +
description text, +
units character varying, +
param_type character varying, +
param_value character varying, +
param_value_num numeric, +
dispersion_type character varying, +
dispersion_value character varying, +
dispersion_value_num numeric, +
dispersion_lower_limit numeric, +
dispersion_upper_limit numeric, +
explanation_of_na text, +
id integer NOT NULL, +
nct_id character varying, +
outcome_id integer +
); +
CREATE TABLE ctgov.outcomes +
( +
population text, +
id integer NOT NULL, +
nct_id character varying, +
outcome_type character varying, +
title text, +
description text, +
time_frame text, +
anticipated_posting_date date, +
anticipated_posting_month_year character varying, +
units character varying, +
units_analyzed character varying, +
dispersion_type character varying, +
param_type character varying +
); +
CREATE TABLE ctgov.overall_officials +
( +
name character varying, +
affiliation character varying, +
role character varying, +
nct_id character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.participant_flows +
( +
count_units integer, +
nct_id character varying, +
pre_assignment_details text, +
units_analyzed character varying, +
drop_withdraw_comment character varying, +
reason_comment character varying, +
recruitment_details text, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.pending_results +
( +
event_date_description character varying, +
event_date date, +
id integer NOT NULL, +
nct_id character varying, +
event character varying +
); +
CREATE TABLE ctgov.provided_documents +
( +
has_sap boolean, +
id integer NOT NULL, +
nct_id character varying, +
document_type character varying, +
has_protocol boolean, +
has_icf boolean, +
document_date date, +
url character varying +
); +
CREATE TABLE ctgov.reported_event_totals +
( +
id integer NOT NULL, +
updated_at timestamp without time zone NOT NULL, +
created_at timestamp without time zone NOT NULL, +
subjects_at_risk integer, +
subjects_affected integer, +
classification character varying NOT NULL, +
event_type character varying, +
ctgov_group_code character varying NOT NULL, +
nct_id character varying NOT NULL +
); +
CREATE TABLE ctgov.reported_events +
( +
vocab character varying, +
nct_id character varying, +
result_group_id integer, +
ctgov_group_code character varying, +
time_frame text, +
event_type character varying, +
default_vocab character varying, +
default_assessment character varying, +
subjects_affected integer, +
subjects_at_risk integer, +
description text, +
event_count integer, +
organ_system character varying, +
adverse_event_term character varying, +
frequency_threshold integer, +
assessment character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.responsible_parties +
( +
affiliation text, +
nct_id character varying, +
responsible_party_type character varying, +
name character varying, +
title character varying, +
organization character varying, +
id integer NOT NULL, +
old_name_title character varying +
); +
CREATE TABLE ctgov.result_agreements +
( +
other_details text, +
restrictive_agreement character varying, +
restriction_type character varying, +
agreement text, +
pi_employee character varying, +
nct_id character varying, +
id integer NOT NULL +
); +
CREATE TABLE ctgov.result_contacts +
( +
id integer NOT NULL, +
organization character varying, +
name character varying, +
phone character varying, +
email character varying, +
extension character varying, +
nct_id character varying +
); +
CREATE TABLE ctgov.result_groups +
( +
result_type character varying, +
title character varying, +
description text, +
id integer NOT NULL, +
nct_id character varying, +
ctgov_group_code character varying +
); +
CREATE TABLE ctgov.retractions +
( +
pmid character varying, +
id bigint NOT NULL, +
nct_id character varying, +
source character varying, +
reference_id integer +
); +
CREATE TABLE ctgov.search_results +
( +
created_at timestamp without time zone NOT NULL, +
nct_id character varying NOT NULL, +
id integer NOT NULL, +
updated_at timestamp without time zone NOT NULL, +
grouping character varying NOT NULL, +
study_search_id integer, +
name character varying NOT NULL +
); +
CREATE TABLE ctgov.sponsors +
( +
id integer NOT NULL, +
name character varying, +
lead_or_collaborator character varying, +
agency_class character varying, +
nct_id character varying +
); +
CREATE TABLE ctgov.studies +
( +
phase character varying, +
delayed_posting character varying, +
source_class character varying, +
updated_at timestamp without time zone NOT NULL, +
created_at timestamp without time zone NOT NULL, +
plan_to_share_ipd_description character varying, +
plan_to_share_ipd character varying, +
ipd_url character varying, +
ipd_access_criteria character varying, +
ipd_time_frame character varying, +
biospec_description text, +
biospec_retention character varying, +
is_us_export boolean, +
is_ppsd boolean, +
is_unapproved_device boolean, +
is_fda_regulated_device boolean, +
is_fda_regulated_drug boolean, +
has_dmc boolean, +
expanded_access_type_treatment boolean, +
expanded_access_type_intermediate boolean, +
expanded_access_type_individual boolean, +
has_expanded_access boolean, +
why_stopped character varying, +
number_of_groups integer, +
number_of_arms integer, +
limitations_and_caveats character varying, +
source character varying, +
enrollment_type character varying, +
enrollment integer, +
expanded_access_nctid character varying, +
last_known_status character varying, +
overall_status character varying, +
official_title text, +
brief_title text, +
baseline_population text, +
acronym character varying, +
study_type character varying, +
target_duration character varying, +
results_first_submitted_date date, +
study_first_submitted_date date, +
nlm_download_date_description character varying, +
primary_completion_date date, +
nct_id character varying, +
primary_completion_date_type character varying, +
primary_completion_month_year character varying, +
completion_date date, +
completion_date_type character varying, +
completion_month_year character varying, +
verification_date date, +
verification_month_year character varying, +
start_date date, +
start_date_type character varying, +
start_month_year character varying, +
last_update_posted_date_type character varying, +
last_update_posted_date date, +
last_update_submitted_qc_date date, +
disposition_first_posted_date_type character varying,+
disposition_first_posted_date date, +
disposition_first_submitted_qc_date date, +
results_first_posted_date_type character varying, +
results_first_posted_date date, +
results_first_submitted_qc_date date, +
study_first_posted_date_type character varying, +
study_first_posted_date date, +
study_first_submitted_qc_date date, +
last_update_submitted_date date, +
disposition_first_submitted_date date, +
baseline_type_units_analyzed character varying, +
fdaaa801_violation boolean, +
expanded_access_status_for_nctid character varying +
); +
CREATE TABLE ctgov.study_records +
( +
nct_id character varying, +
sha character varying, +
created_at timestamp without time zone NOT NULL, +
updated_at timestamp without time zone NOT NULL, +
type character varying, +
content json, +
id bigint NOT NULL +
); +
CREATE TABLE ctgov.study_references +
( +
id integer NOT NULL, +
citation text, +
reference_type character varying, +
pmid character varying, +
nct_id character varying +
); +
CREATE TABLE ctgov.study_searches +
( +
query character varying NOT NULL, +
id integer NOT NULL, +
updated_at timestamp without time zone NOT NULL, +
created_at timestamp without time zone NOT NULL, +
beta_api boolean NOT NULL, +
name character varying NOT NULL, +
grouping character varying NOT NULL, +
save_tsv boolean NOT NULL +
); +
CREATE TABLE ctgov.verifiers +
( +
id bigint NOT NULL, +
created_at timestamp without time zone NOT NULL, +
source json, +
updated_at timestamp without time zone NOT NULL, +
load_event_id integer, +
last_run timestamp without time zone, +
differences json NOT NULL +
); +
CREATE TABLE history.trial_snapshots +
( +
completion_date timestamp without time zone, +
nct_id character varying(15) NOT NULL, +
version integer NOT NULL, +
submission_date timestamp without time zone, +
primary_completion_date timestamp without time zone, +
primary_completion_date_category USER-DEFINED, +
start_date timestamp without time zone, +
start_date_category USER-DEFINED, +
completion_date_category USER-DEFINED, +
overall_status USER-DEFINED, +
enrollment integer, +
enrollment_category USER-DEFINED, +
sponsor character varying, +
responsible_party character varying +
); +
CREATE TABLE http.download_status +
( +
status USER-DEFINED NOT NULL, +
nct_id character varying(15) NOT NULL, +
id integer NOT NULL, +
update_timestamp timestamp with time zone +
); +
CREATE TABLE http.responses +
( +
nct_id character varying(15), +
version_a smallint, +
version_b smallint, +
url character varying(255), +
response_code smallint, +
response_date timestamp with time zone, +
id integer NOT NULL, +
html text +
); +
CREATE TABLE rxnorm_migrated.ALLNDC_HISTORY +
( +
sab character varying(10), +
ndc11_left9 character(9) NOT NULL, +
rowid integer NOT NULL, +
ndc character(13) NOT NULL, +
suppress character(1), +
edate character(6), +
sdate character(6), +
rxcui character(16) +
); +
CREATE TABLE rxnorm_migrated.ALLRXCUI_HISTORY +
( +
tty character varying(5), +
sts character(1), +
rxindb character(1), +
indb character(1), +
rowid integer NOT NULL, +
rxcui character(16) NOT NULL, +
sab character varying(20), +
str character varying(3000), +
sdate character(6), +
edate character(6) +
); +
CREATE TABLE rxnorm_migrated.rxnorm_props +
( +
rxcui character(8) NOT NULL, +
pres smallint NOT NULL, +
propvalue1 character varying(4000) NOT NULL, +
propname character varying(30) NOT NULL +
); +
CREATE TABLE rxnorm_migrated.rxnorm_relations +
( +
tty2 character(4) NOT NULL, +
rxcui1 character(8) NOT NULL, +
tty1 character(4) NOT NULL, +
cvf character(4) NOT NULL, +
rxcui2 character(8) NOT NULL +
); +
CREATE TABLE spl.nsde +
( +
proprietary_name character varying(500), +
package_ndc character varying(50), +
application_number_or_citation character varying(25),+
package_ndc11 character varying(11), +
id integer NOT NULL, +
reactivation_date date, +
inactivation_date date, +
marketing_start_date date, +
marketing_end_date date, +
billing_unit character varying(35), +
dosage_form character varying(155), +
marketing_category character varying(160), +
product_type character varying(90) +
); +
(76 rows)

@ -0,0 +1,415 @@
?column?
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW ctgov.all_browse_conditions AS SELECT browse_conditions.nct_id, +
array_to_string(array_agg(DISTINCT browse_conditions.mesh_term), '|'::text) AS names +
FROM ctgov.browse_conditions +
GROUP BY browse_conditions.nct_id;
CREATE OR REPLACE VIEW ctgov.all_browse_interventions AS SELECT browse_interventions.nct_id, +
array_to_string(array_agg(browse_interventions.mesh_term), '|'::text) AS names +
FROM ctgov.browse_interventions +
GROUP BY browse_interventions.nct_id;
CREATE OR REPLACE VIEW ctgov.all_cities AS SELECT facilities.nct_id, +
array_to_string(array_agg(DISTINCT facilities.city), '|'::text) AS names +
FROM ctgov.facilities +
GROUP BY facilities.nct_id;
CREATE OR REPLACE VIEW ctgov.all_conditions AS SELECT conditions.nct_id, +
array_to_string(array_agg(DISTINCT conditions.name), '|'::text) AS names +
FROM ctgov.conditions +
GROUP BY conditions.nct_id;
CREATE OR REPLACE VIEW ctgov.all_countries AS SELECT countries.nct_id, +
array_to_string(array_agg(DISTINCT countries.name), '|'::text) AS names +
FROM ctgov.countries +
WHERE (countries.removed IS NOT TRUE) +
GROUP BY countries.nct_id;
CREATE OR REPLACE VIEW ctgov.all_design_outcomes AS SELECT design_outcomes.nct_id, +
array_to_string(array_agg(DISTINCT design_outcomes.measure), '|'::text) AS names +
FROM ctgov.design_outcomes +
GROUP BY design_outcomes.nct_id;
CREATE OR REPLACE VIEW ctgov.all_facilities AS SELECT facilities.nct_id, +
array_to_string(array_agg(facilities.name), '|'::text) AS names +
FROM ctgov.facilities +
GROUP BY facilities.nct_id;
CREATE OR REPLACE VIEW ctgov.all_group_types AS SELECT design_groups.nct_id, +
array_to_string(array_agg(DISTINCT design_groups.group_type), '|'::text) AS names +
FROM ctgov.design_groups +
GROUP BY design_groups.nct_id;
CREATE OR REPLACE VIEW ctgov.all_id_information AS SELECT id_information.nct_id, +
array_to_string(array_agg(DISTINCT id_information.id_value), '|'::text) AS names +
FROM ctgov.id_information +
GROUP BY id_information.nct_id;
CREATE OR REPLACE VIEW ctgov.all_intervention_types AS SELECT interventions.nct_id, +
array_to_string(array_agg(interventions.intervention_type), '|'::text) AS names +
FROM ctgov.interventions +
GROUP BY interventions.nct_id;
CREATE OR REPLACE VIEW ctgov.all_interventions AS SELECT interventions.nct_id, +
array_to_string(array_agg(interventions.name), '|'::text) AS names +
FROM ctgov.interventions +
GROUP BY interventions.nct_id;
CREATE OR REPLACE VIEW ctgov.all_keywords AS SELECT keywords.nct_id, +
array_to_string(array_agg(DISTINCT keywords.name), '|'::text) AS names +
FROM ctgov.keywords +
GROUP BY keywords.nct_id;
CREATE OR REPLACE VIEW ctgov.all_overall_official_affiliations AS SELECT overall_officials.nct_id, +
array_to_string(array_agg(overall_officials.affiliation), '|'::text) AS names +
FROM ctgov.overall_officials +
GROUP BY overall_officials.nct_id;
CREATE OR REPLACE VIEW ctgov.all_overall_officials AS SELECT overall_officials.nct_id, +
array_to_string(array_agg(overall_officials.name), '|'::text) AS names +
FROM ctgov.overall_officials +
GROUP BY overall_officials.nct_id;
CREATE OR REPLACE VIEW ctgov.all_primary_outcome_measures AS SELECT design_outcomes.nct_id, +
array_to_string(array_agg(DISTINCT design_outcomes.measure), '|'::text) AS names +
FROM ctgov.design_outcomes +
WHERE ((design_outcomes.outcome_type)::text = 'primary'::text) +
GROUP BY design_outcomes.nct_id;
CREATE OR REPLACE VIEW ctgov.all_secondary_outcome_measures AS SELECT design_outcomes.nct_id, +
array_to_string(array_agg(DISTINCT design_outcomes.measure), '|'::text) AS names +
FROM ctgov.design_outcomes +
WHERE ((design_outcomes.outcome_type)::text = 'secondary'::text) +
GROUP BY design_outcomes.nct_id;
CREATE OR REPLACE VIEW ctgov.all_sponsors AS SELECT sponsors.nct_id, +
array_to_string(array_agg(DISTINCT sponsors.name), '|'::text) AS names +
FROM ctgov.sponsors +
GROUP BY sponsors.nct_id;
CREATE OR REPLACE VIEW ctgov.all_states AS SELECT facilities.nct_id, +
array_to_string(array_agg(DISTINCT facilities.state), '|'::text) AS names +
FROM ctgov.facilities +
GROUP BY facilities.nct_id;
CREATE OR REPLACE VIEW ctgov.categories AS SELECT search_results.id, +
search_results.nct_id, +
search_results.name, +
search_results.created_at, +
search_results.updated_at, +
search_results."grouping", +
search_results.study_search_id +
FROM ctgov.search_results;
CREATE OR REPLACE VIEW ctgov.covid_19_studies AS SELECT s.nct_id, +
s.overall_status, +
s.study_type, +
s.official_title, +
s.acronym, +
s.phase, +
s.why_stopped, +
s.has_dmc, +
s.enrollment, +
s.is_fda_regulated_device, +
s.is_fda_regulated_drug, +
s.is_unapproved_device, +
s.has_expanded_access, +
s.study_first_submitted_date, +
s.last_update_posted_date, +
s.results_first_posted_date, +
s.start_date, +
s.primary_completion_date, +
s.completion_date, +
s.study_first_posted_date, +
cv.number_of_facilities, +
cv.has_single_facility, +
cv.nlm_download_date, +
s.number_of_arms, +
s.number_of_groups, +
sp.name AS lead_sponsor, +
aid.names AS other_ids, +
e.gender, +
e.gender_based, +
e.gender_description, +
e.population, +
e.minimum_age, +
e.maximum_age, +
e.criteria, +
e.healthy_volunteers, +
ak.names AS keywords, +
ai.names AS interventions, +
ac.names AS conditions, +
d.primary_purpose, +
d.allocation, +
d.observational_model, +
d.intervention_model, +
d.masking, +
d.subject_masked, +
d.caregiver_masked, +
d.investigator_masked, +
d.outcomes_assessor_masked, +
ado.names AS design_outcomes, +
bs.description AS brief_summary, +
dd.description AS detailed_description +
FROM (((((((((((ctgov.studies s +
FULL JOIN ctgov.all_conditions ac ON (((s.nct_id)::text = (ac.nct_id)::text))) +
FULL JOIN ctgov.all_id_information aid ON (((s.nct_id)::text = (aid.nct_id)::text))) +
FULL JOIN ctgov.all_design_outcomes ado ON (((s.nct_id)::text = (ado.nct_id)::text))) +
FULL JOIN ctgov.all_keywords ak ON (((s.nct_id)::text = (ak.nct_id)::text))) +
FULL JOIN ctgov.all_interventions ai ON (((s.nct_id)::text = (ai.nct_id)::text))) +
FULL JOIN ctgov.sponsors sp ON (((s.nct_id)::text = (sp.nct_id)::text))) +
FULL JOIN ctgov.calculated_values cv ON (((s.nct_id)::text = (cv.nct_id)::text))) +
FULL JOIN ctgov.designs d ON (((s.nct_id)::text = (d.nct_id)::text))) +
FULL JOIN ctgov.eligibilities e ON (((s.nct_id)::text = (e.nct_id)::text))) +
FULL JOIN ctgov.brief_summaries bs ON (((s.nct_id)::text = (bs.nct_id)::text))) +
FULL JOIN ctgov.detailed_descriptions dd ON (((s.nct_id)::text = (dd.nct_id)::text))) +
WHERE (((sp.lead_or_collaborator)::text = 'lead'::text) AND ((s.nct_id)::text IN ( SELECT search_results.nct_id +
FROM ctgov.search_results +
WHERE ((search_results.name)::text = 'covid-19'::text))));
CREATE OR REPLACE VIEW history.match_drugs_to_trials AS SELECT bi.nct_id, +
rp.rxcui, +
rp.propvalue1 +
FROM (ctgov.browse_interventions bi +
JOIN rxnorm_migrated.rxnorm_props rp ON (((bi.downcase_mesh_term)::text = (rp.propvalue1)::text))) +
WHERE (((rp.propname)::text = 'RxNorm Name'::text) AND ((bi.nct_id)::text IN ( SELECT trial_snapshots.nct_id +
FROM history.trial_snapshots)));
CREATE OR REPLACE VIEW http.most_recent_download_status AS SELECT t.nct_id, +
t.status, +
t.update_timestamp +
FROM ( SELECT download_status.id, +
download_status.nct_id, +
download_status.status, +
download_status.update_timestamp, +
row_number() OVER (PARTITION BY download_status.nct_id ORDER BY download_status.update_timestamp DESC) AS rn +
FROM http.download_status) t +
WHERE (t.rn = 1) +
ORDER BY t.nct_id;
CREATE OR REPLACE VIEW public.time_between_submission_and_start_view AS SELECT s.nct_id, +
s.start_date, +
ts.version, +
ts.submission_date, +
abs(((EXTRACT(epoch FROM (ts.submission_date - (s.start_date)::timestamp without time zone)))::double precision / (((24 * 60) * 60))::double precision)) AS start_deviance +
FROM (ctgov.studies s +
JOIN history.trial_snapshots ts ON (((s.nct_id)::text = (ts.nct_id)::text))) +
WHERE ((s.nct_id)::text IN ( SELECT DISTINCT tti.nct_id +
FROM "DiseaseBurden".trial_to_icd10 tti));
CREATE OR REPLACE VIEW public.rank_proximity_to_start_time_view AS SELECT cte.nct_id, +
cte.version, +
row_number() OVER (PARTITION BY cte.nct_id ORDER BY cte.start_deviance) AS rownum, +
cte.submission_date, +
cte.start_deviance, +
cte.start_date, +
ts.primary_completion_date, +
ts.primary_completion_date_category, +
ts.overall_status, +
ts.enrollment, +
ts.enrollment_category +
FROM (time_between_submission_and_start_view cte +
JOIN history.trial_snapshots ts ON ((((cte.nct_id)::text = (ts.nct_id)::text) AND (cte.version = ts.version))));
CREATE OR REPLACE VIEW public.enrollment_closest_to_start_view AS SELECT cte2.nct_id, +
min(cte2.rownum) AS enrollment_source +
FROM rank_proximity_to_start_time_view cte2 +
WHERE (cte2.enrollment IS NOT NULL) +
GROUP BY cte2.nct_id;
CREATE OR REPLACE VIEW public.match_trials_to_bn_in AS WITH trialncts AS ( +
SELECT DISTINCT ts.nct_id +
FROM history.trial_snapshots ts +
) +
SELECT bi.nct_id, +
bi.downcase_mesh_term, +
rr.tty2, +
rr.rxcui2 AS bn_or_in_cui, +
count(*) AS count +
FROM ((ctgov.browse_interventions bi +
LEFT JOIN rxnorm_migrated.rxnorm_props rp ON (((bi.downcase_mesh_term)::text = (rp.propvalue1)::text))) +
LEFT JOIN rxnorm_migrated.rxnorm_relations rr ON ((rr.rxcui1 = rp.rxcui))) +
WHERE (((bi.nct_id)::text IN ( SELECT trialncts.nct_id +
FROM trialncts)) AND ((bi.mesh_type)::text = 'mesh-list'::text) AND ((rp.propname)::text = 'Active_ingredient_name'::text) AND (rr.tty2 = ANY (ARRAY['BN'::bpchar, 'IN'::bpchar, 'MIN'::bpchar]))) +
GROUP BY bi.nct_id, bi.downcase_mesh_term, rr.tty2, rr.rxcui2 +
ORDER BY bi.nct_id;
CREATE OR REPLACE VIEW public.match_trial_to_ndc11 AS SELECT mttbi.nct_id, +
ah.ndc, +
count(*) AS count +
FROM ((match_trials_to_bn_in mttbi +
LEFT JOIN rxnorm_migrated.rxnorm_relations rr ON ((mttbi.bn_or_in_cui = rr.rxcui1))) +
LEFT JOIN rxnorm_migrated."ALLNDC_HISTORY" ah ON ((rr.rxcui2 = ah.rxcui))) +
WHERE ((rr.tty1 = 'BN'::bpchar) AND (rr.tty2 = ANY (ARRAY['SBD'::bpchar, 'BPCK'::bpchar])) AND ((ah.sab)::text = 'RXNORM'::text)) +
GROUP BY mttbi.nct_id, ah.ndc +
ORDER BY mttbi.nct_id, ah.ndc;
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) AS min +
FROM (match_trial_to_ndc11 mttn +
JOIN spl.nsde n ON ((mttn.ndc = (n.package_ndc11)::bpchar))) +
WHERE (((n.product_type)::text = 'HUMAN PRESCRIPTION DRUG'::text) AND ((n.marketing_category)::text = ANY (ARRAY[('NDA'::character varying)::text, ('ANDA'::character varying)::text, ('BLA'::character varying)::text, ('NDA authorized generic'::character varying)::text, ('NDA AUTHORIZED GENERIC'::character varying)::text]))) +
GROUP BY mttn.nct_id, n.application_number_or_citation +
ORDER BY mttn.nct_id;
CREATE OR REPLACE VIEW public.view_burdens_cte AS SELECT b.measure_id, +
b.location_id, +
b.sex_id, +
b.age_id, +
b.cause_id, +
b.metric_id, +
b.year, +
b.val, +
b.upper_95, +
b.lower_95, +
b.key_column +
FROM "DiseaseBurden".burdens b +
WHERE ((b.sex_id = 3) AND (b.metric_id = 1) AND (b.measure_id = 2) AND (b.age_id = 22));
CREATE OR REPLACE VIEW public.view_burdens_cte2 AS SELECT c1.cause_id, +
c1.year, +
c1.val AS h_sdi_val, +
c1.upper_95 AS h_sdi_u95, +
c1.lower_95 AS h_sdi_l95, +
c2.val AS hm_sdi_val, +
c2.upper_95 AS hm_sdi_u95, +
c2.lower_95 AS hm_sdi_l95, +
c3.val AS m_sdi_val, +
c3.upper_95 AS m_sdi_u95, +
c3.lower_95 AS m_sdi_l95, +
c4.val AS lm_sdi_val, +
c4.upper_95 AS lm_sdi_u95, +
c4.lower_95 AS lm_sdi_l95, +
c5.val AS l_sdi_val, +
c5.upper_95 AS l_sdi_u95, +
c5.lower_95 AS l_sdi_l95 +
FROM ((((view_burdens_cte c1 +
JOIN view_burdens_cte c2 ON (((c1.cause_id = c2.cause_id) AND (c1.year = c2.year)))) +
JOIN view_burdens_cte c3 ON (((c1.cause_id = c3.cause_id) AND (c1.year = c3.year)))) +
JOIN view_burdens_cte c4 ON (((c1.cause_id = c4.cause_id) AND (c1.year = c4.year)))) +
JOIN view_burdens_cte c5 ON (((c1.cause_id = c5.cause_id) AND (c1.year = c5.year)))) +
WHERE ((c1.location_id = 44635) AND (c2.location_id = 44634) AND (c3.location_id = 44639) AND (c4.location_id = 44636) AND (c5.location_id = 44637));
CREATE OR REPLACE VIEW public.view_cte AS SELECT ts.nct_id, +
ts.primary_completion_date, +
ts.primary_completion_date_category, +
ts.enrollment, +
ts.start_date, +
ts.enrollment_category, +
ts.overall_status, +
min(ts.submission_date) AS earliest_date_observed +
FROM history.trial_snapshots ts +
WHERE (((ts.nct_id)::text IN ( SELECT DISTINCT tti.nct_id +
FROM "DiseaseBurden".trial_to_icd10 tti +
WHERE (tti.approved = 'accepted'::"DiseaseBurden".validation_type))) AND (ts.submission_date >= ts.start_date) AND (ts.overall_status <> ALL (ARRAY['Completed'::history.study_statuses, 'Terminated'::history.study_statuses]))) +
GROUP BY ts.nct_id, ts.primary_completion_date, ts.primary_completion_date_category, ts.start_date, ts.enrollment, ts.enrollment_category, ts.overall_status;
CREATE OR REPLACE VIEW public.view_disbur_cte0 AS SELECT tti.nct_id, +
tti.ui, +
tti.condition, +
itc.cause_text, +
ch.cause_id, +
ch.level +
FROM (("DiseaseBurden".trial_to_icd10 tti +
JOIN "DiseaseBurden".icd10_to_cause itc ON ((replace(replace((tti.ui)::text, '-'::text, ''::text), '.'::text, ''::text) = replace(replace((itc.code)::text, '-'::text, ''::text), '.'::text, ''::text)))) +
JOIN "DiseaseBurden".cause_hierarchy ch ON (((itc.cause_text)::text = (ch.cause_name)::text))) +
WHERE (tti.approved = 'accepted'::"DiseaseBurden".validation_type);
CREATE OR REPLACE VIEW public.view_disbur_cte AS SELECT view_disbur_cte0.nct_id, +
max(view_disbur_cte0.level) AS max_level +
FROM view_disbur_cte0 +
GROUP BY view_disbur_cte0.nct_id;
CREATE OR REPLACE VIEW public.view_trial_to_cause AS SELECT tti.nct_id, +
tti.ui, +
tti.condition, +
itc.cause_text, +
ch.cause_id, +
ch.level +
FROM (("DiseaseBurden".trial_to_icd10 tti +
JOIN "DiseaseBurden".icd10_to_cause itc ON ((replace(replace((tti.ui)::text, '-'::text, ''::text), '.'::text, ''::text) = replace(replace((itc.code)::text, '-'::text, ''::text), '.'::text, ''::text)))) +
JOIN "DiseaseBurden".cause_hierarchy ch ON (((itc.cause_text)::text = (ch.cause_name)::text))) +
WHERE (tti.approved = 'accepted'::"DiseaseBurden".validation_type) +
ORDER BY tti.nct_id;
CREATE OR REPLACE VIEW public.view_disbur_cte2 AS SELECT ttc.nct_id, +
ttc.ui, +
ttc.condition, +
ttc.cause_text, +
ttc.cause_id, +
disbur_cte.max_level +
FROM (view_trial_to_cause ttc +
JOIN view_disbur_cte disbur_cte ON (((disbur_cte.nct_id)::text = (ttc.nct_id)::text))) +
WHERE (ttc.level = disbur_cte.max_level) +
GROUP BY ttc.nct_id, ttc.ui, ttc.condition, ttc.cause_text, ttc.cause_id, disbur_cte.max_level +
ORDER BY ttc.nct_id, ttc.ui;
CREATE OR REPLACE VIEW public.view_disbur_cte3 AS SELECT disbur_cte2.nct_id, +
SUBSTRING(disbur_cte2.ui FROM 1 FOR 3) AS code, +
disbur_cte2.condition, +
disbur_cte2.cause_text, +
disbur_cte2.cause_id, +
ic.chapter_code AS category_id, +
ic.group_name, +
disbur_cte2.max_level +
FROM (view_disbur_cte2 disbur_cte2 +
JOIN "DiseaseBurden".icd10_categories ic ON (((SUBSTRING(disbur_cte2.ui FROM 1 FOR 3) <= (ic.end_code)::text) AND (SUBSTRING(disbur_cte2.ui FROM 1 FOR 3) >= (ic.start_code)::text)))) +
WHERE (ic.level = 1);
CREATE OR REPLACE VIEW public.formatted_data AS SELECT cte.nct_id, +
cte.start_date, +
cte.enrollment AS current_enrollment, +
cte.enrollment_category, +
cte.overall_status AS current_status, +
cte.earliest_date_observed, +
(EXTRACT(epoch FROM (cte.earliest_date_observed - cte.start_date)) / EXTRACT(epoch FROM (cte.primary_completion_date - cte.start_date))) AS elapsed_duration, +
count(DISTINCT mttmsd.application_number_or_citation) AS n_brands, +
dbc3.code, +
dbc3.condition, +
dbc3.cause_text, +
dbc3.cause_id, +
dbc3.category_id, +
dbc3.group_name, +
dbc3.max_level, +
b.year, +
b.h_sdi_val, +
b.h_sdi_u95, +
b.h_sdi_l95, +
b.hm_sdi_val, +
b.hm_sdi_u95, +
b.hm_sdi_l95, +
b.m_sdi_val, +
b.m_sdi_u95, +
b.m_sdi_l95, +
b.lm_sdi_val, +
b.lm_sdi_u95, +
b.lm_sdi_l95, +
b.l_sdi_val, +
b.l_sdi_u95, +
b.l_sdi_l95 +
FROM (((view_cte cte +
JOIN match_trial_to_marketing_start_date mttmsd ON (((cte.nct_id)::text = (mttmsd.nct_id)::text))) +
JOIN view_disbur_cte3 dbc3 ON (((dbc3.nct_id)::text = (cte.nct_id)::text))) +
JOIN view_burdens_cte2 b ON (((b.cause_id = dbc3.cause_id) AND (EXTRACT(year FROM b.year) = EXTRACT(year FROM cte.earliest_date_observed))))) +
WHERE (mttmsd.min <= cte.earliest_date_observed) +
GROUP BY cte.nct_id, cte.start_date, cte.enrollment, cte.enrollment_category, cte.overall_status, cte.earliest_date_observed, (EXTRACT(epoch FROM (cte.earliest_date_observed - cte.start_date)) / EXTRACT(epoch FROM (cte.primary_completion_date - cte.start_date))), dbc3.code, dbc3.condition, dbc3.cause_text, dbc3.cause_id, dbc3.category_id, dbc3.group_name, dbc3.max_level, b.cause_id, b.year, b.h_sdi_val, b.h_sdi_u95, b.h_sdi_l95, b.hm_sdi_val, b.hm_sdi_u95, b.hm_sdi_l95, b.m_sdi_val, b.m_sdi_u95, b.m_sdi_l95, b.lm_sdi_val, b.lm_sdi_u95, b.lm_sdi_l95, b.l_sdi_val, b.l_sdi_u95, b.l_sdi_l95+
ORDER BY cte.nct_id, cte.earliest_date_observed;
CREATE OR REPLACE VIEW public.formatted_data_with_planned_enrollment AS SELECT f.nct_id, +
f.start_date, +
f.current_enrollment, +
f.enrollment_category, +
f.current_status, +
f.earliest_date_observed, +
f.elapsed_duration, +
f.n_brands, +
f.code, +
f.condition, +
f.cause_text, +
f.cause_id, +
f.category_id, +
f.group_name, +
f.max_level, +
f.year, +
f.h_sdi_val, +
f.h_sdi_u95, +
f.h_sdi_l95, +
f.hm_sdi_val, +
f.hm_sdi_u95, +
f.hm_sdi_l95, +
f.m_sdi_val, +
f.m_sdi_u95, +
f.m_sdi_l95, +
f.lm_sdi_val, +
f.lm_sdi_u95, +
f.lm_sdi_l95, +
f.l_sdi_val, +
f.l_sdi_u95, +
f.l_sdi_l95, +
s.overall_status AS final_status, +
c2a.version, +
c2a.enrollment AS planned_enrollment +
FROM (((formatted_data f +
JOIN ctgov.studies s ON (((f.nct_id)::text = (s.nct_id)::text))) +
JOIN enrollment_closest_to_start_view c3e ON (((c3e.nct_id)::text = (f.nct_id)::text))) +
JOIN rank_proximity_to_start_time_view c2a ON ((((c3e.nct_id)::text = (c2a.nct_id)::text) AND (c3e.enrollment_source = c2a.rownum))));
CREATE OR REPLACE VIEW http.trials_to_download AS SELECT most_recent_download_status.nct_id +
FROM http.most_recent_download_status +
WHERE (most_recent_download_status.status = 'Of Interest'::http.history_download_status);
CREATE OR REPLACE VIEW public.primary_design_outcomes AS SELECT do2.id, +
do2.nct_id, +
do2.outcome_type, +
do2.measure, +
do2.time_frame, +
do2.population, +
do2.description +
FROM ctgov.design_outcomes do2 +
WHERE (((do2.outcome_type)::text = 'primary'::text) AND ((do2.nct_id)::text IN ( SELECT DISTINCT fd.nct_id +
FROM formatted_data fd)));
(40 rows)
Loading…
Cancel
Save