Compare commits
25 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
d1d0dc87a7 | 1 year ago |
|
|
1782372a45 | 1 year ago |
|
|
fc478517ac | 1 year ago |
|
|
d912408456 | 1 year ago |
|
|
2488cceebc | 1 year ago |
|
|
eca4795d2f | 1 year ago |
|
|
87074aa42b | 1 year ago |
|
|
3311159ab6 | 2 years ago |
|
|
bb374dbde9 | 2 years ago |
|
|
635cfe42d9 | 2 years ago |
|
|
79902f400a | 2 years ago |
|
|
495955170c | 2 years ago |
|
|
de3698052b | 2 years ago |
|
|
dfb041d12b | 2 years ago |
|
|
9aaf007791 | 2 years ago |
|
|
b4a3cec7e6 | 2 years ago |
|
|
211151e223 | 2 years ago |
|
|
d90539a679 | 2 years ago |
|
|
142670d08a | 2 years ago |
|
|
6a931b3a49 | 3 years ago |
|
|
1c3d749ef4 | 3 years ago |
|
|
ef68adae89 | 3 years ago |
|
|
a336fb92d9 | 3 years ago |
|
|
b7290c271b | 3 years ago |
|
|
2a9b8349ba | 3 years ago |
Binary file not shown.
@ -1,64 +0,0 @@
|
|||||||
{
|
|
||||||
"folders": {},
|
|
||||||
"connections": {
|
|
||||||
"mariaDB-186c896820e-6ff11b5b802d8b82": {
|
|
||||||
"provider": "mysql",
|
|
||||||
"driver": "mariaDB",
|
|
||||||
"name": "rxnav",
|
|
||||||
"save-password": true,
|
|
||||||
"configuration": {
|
|
||||||
"host": "will-office",
|
|
||||||
"port": "3306",
|
|
||||||
"url": "jdbc:mariadb://will-office:3306/",
|
|
||||||
"configurationType": "MANUAL",
|
|
||||||
"type": "dev",
|
|
||||||
"auth-model": "native"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"postgres-jdbc-186c896a347-2a3d946d2dea4df7": {
|
|
||||||
"provider": "postgresql",
|
|
||||||
"driver": "postgres-jdbc",
|
|
||||||
"name": "aact_db",
|
|
||||||
"save-password": true,
|
|
||||||
"configuration": {
|
|
||||||
"host": "100.95.169.11",
|
|
||||||
"port": "5432",
|
|
||||||
"database": "aact_db",
|
|
||||||
"url": "jdbc:postgresql://100.95.169.11:5432/aact_db",
|
|
||||||
"configurationType": "MANUAL",
|
|
||||||
"type": "dev",
|
|
||||||
"provider-properties": {},
|
|
||||||
"auth-model": "native"
|
|
||||||
},
|
|
||||||
"custom-properties": {
|
|
||||||
"resultset.maxrows": "500"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"postgres-jdbc-186cd8f479f-6cc3c10c8adc3359": {
|
|
||||||
"provider": "postgresql",
|
|
||||||
"driver": "postgres-jdbc",
|
|
||||||
"name": "drugcentral",
|
|
||||||
"save-password": true,
|
|
||||||
"configuration": {
|
|
||||||
"host": "localhost",
|
|
||||||
"port": "54320",
|
|
||||||
"database": "postgres",
|
|
||||||
"url": "jdbc:postgresql://localhost:54320/postgres",
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"resources":{"Scripts/ASSOICATING NCTIDs to NDCs and Marketing dates.sql":{"default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db","default-schema":"public"},"Scripts/Data_summaries.sql":{"default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db","default-schema":"public"},"Scripts/DevelopingLinks.sql":{"default-schema":"public","default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db"},"Scripts/DiseaseBurdens_create_table.sql":{"default-schema":"public","default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db"},"Scripts/GlobalBurdensOfDisease2019Codebook.sql":{"default-schema":"DiseaseBurden","default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db"},"Scripts/GroupingTrials.sql":{"default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db","default-schema":"public"},"Scripts/Script.sql":{"default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db","default-schema":"public"},"Scripts/TablesAndViews_Public.sql":{"default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db","default-schema":"public"},"development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql":{"default-schema":"public","default-datasource":"postgres-jdbc-186c896a347-2a3d946d2dea4df7","default-catalog":"aact_db"}}}
|
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
*.sql.gzip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
containers/AACT_Reloader/2023-09-06_aactdb_with_matches.sql.gz 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/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
|
||||||
|
containers/AACT_Reloader/backup/aact_db_backup_20250107_133822.sql.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
#!/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"
|
||||||
|
container_name = ${1:-aact_db}
|
||||||
|
|
||||||
|
podman exec "$container_name" pg_dump -U root aact_db > "${backup_dir}/${filename}"
|
||||||
|
|
||||||
|
# Optional: compress the backup
|
||||||
|
gzip "${backup_dir}/${filename}"
|
||||||
@ -0,0 +1,117 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
It links rxcuis to other rxcuis where they have a matching USP Categories and Class
|
||||||
|
This gives alternative RXCUIs based on category an class.
|
||||||
|
*/
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
drop if exists materialized view "Formularies".match_trial_compound_to_alternate_bn_rxcuis;
|
||||||
|
drop if exists materialized view "Formularies".rxcui_to_brand_through_uspdc cascade;
|
||||||
|
|
||||||
|
create materialized view "Formularies".rxcui_to_brand_through_uspdc AS
|
||||||
|
select distinct
|
||||||
|
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'
|
||||||
|
;
|
||||||
|
|
||||||
|
/* So this one takes each RXCUI and it's associated RXCUIs from the same
|
||||||
|
category and class, and filters it down to associated RXCUI's that
|
||||||
|
represent brand names.
|
||||||
|
*/
|
||||||
|
|
||||||
|
create materialized view "Formularies".match_trial_compound_to_alternate_bn_rxcuis as
|
||||||
|
select distinct mttbi.nct_id, rtbtu.rxcui2 as brand_rxcuis
|
||||||
|
from match_trials_to_bn_in mttbi
|
||||||
|
join "Formularies".rxcui_to_brand_through_uspdc rtbtu
|
||||||
|
on mttbi.bn_or_in_cui = rtbtu.rxcui2
|
||||||
|
;
|
||||||
|
|
||||||
|
/*
|
||||||
|
This takes the list of ingredients and brands associated with a trial, and
|
||||||
|
links it to the list of alternative brand names.
|
||||||
|
*/
|
||||||
|
|
||||||
|
--renamed the view
|
||||||
|
CREATE OR REPLACE VIEW "Formularies".nct_to_brand_counts_through_uspdc
|
||||||
|
AS SELECT mtctabr.nct_id,
|
||||||
|
count(*) AS brand_name_counts
|
||||||
|
FROM "Formularies".match_trial_compound_to_alternate_bn_rxcuis mtctabr
|
||||||
|
GROUP BY mtctabr.nct_id;
|
||||||
@ -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,308 @@
|
|||||||
|
select * from formatted_data_with_planned_enrollment fdwpe
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
select * from formatted_data_mat fdm
|
||||||
|
;
|
||||||
|
|
||||||
|
select count(distinct condition ) from formatted_data_mat fdm
|
||||||
|
|
||||||
|
select nct_id, fdm.current_status , count(*)
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
group by nct_id , fdm.current_status
|
||||||
|
order by nct_id
|
||||||
|
;
|
||||||
|
|
||||||
|
select * from formatted_data_mat fdm ;
|
||||||
|
|
||||||
|
|
||||||
|
-- group with trial split
|
||||||
|
with cte as (
|
||||||
|
select nct_id
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
group by nct_id
|
||||||
|
having count(distinct current_status) > 1
|
||||||
|
order by nct_id
|
||||||
|
)
|
||||||
|
select
|
||||||
|
fdm.nct_id
|
||||||
|
, current_status
|
||||||
|
, earliest_date_observed
|
||||||
|
, elapsed_duration
|
||||||
|
, n_brands
|
||||||
|
, category_id
|
||||||
|
, h_sdi_val
|
||||||
|
, h_sdi_u95
|
||||||
|
, h_sdi_l95
|
||||||
|
, hm_sdi_val
|
||||||
|
, hm_sdi_u95
|
||||||
|
, hm_sdi_l95
|
||||||
|
, m_sdi_val
|
||||||
|
, m_sdi_u95
|
||||||
|
, m_sdi_l95
|
||||||
|
, lm_sdi_val
|
||||||
|
, lm_sdi_u95
|
||||||
|
, lm_sdi_l95
|
||||||
|
, l_sdi_val
|
||||||
|
, l_sdi_u95
|
||||||
|
, l_sdi_l95
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
join cte on cte.nct_id = fdm.nct_id
|
||||||
|
group by
|
||||||
|
fdm.nct_id
|
||||||
|
, current_status
|
||||||
|
, earliest_date_observed
|
||||||
|
, elapsed_duration
|
||||||
|
, n_brands
|
||||||
|
, category_id
|
||||||
|
, h_sdi_val
|
||||||
|
, h_sdi_u95
|
||||||
|
, h_sdi_l95
|
||||||
|
, hm_sdi_val
|
||||||
|
, hm_sdi_u95
|
||||||
|
, hm_sdi_l95
|
||||||
|
, m_sdi_val
|
||||||
|
, m_sdi_u95
|
||||||
|
, m_sdi_l95
|
||||||
|
, lm_sdi_val
|
||||||
|
, lm_sdi_u95
|
||||||
|
, lm_sdi_l95
|
||||||
|
, l_sdi_val
|
||||||
|
, l_sdi_u95
|
||||||
|
, l_sdi_l95
|
||||||
|
order by nct_id , earliest_date_observed
|
||||||
|
;
|
||||||
|
|
||||||
|
select count(distinct category_id ) from
|
||||||
|
|
||||||
|
|
||||||
|
select distinct category_id from formatted_data_mat fdm
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- group with trial split
|
||||||
|
with cte as (
|
||||||
|
select nct_id
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
group by nct_id
|
||||||
|
having count(distinct current_status) > 1
|
||||||
|
order by nct_id
|
||||||
|
)
|
||||||
|
select
|
||||||
|
fdm.nct_id
|
||||||
|
, current_status
|
||||||
|
, earliest_date_observed
|
||||||
|
, elapsed_duration
|
||||||
|
, n_brands
|
||||||
|
, category_id
|
||||||
|
, h_sdi_val
|
||||||
|
, h_sdi_u95
|
||||||
|
, h_sdi_l95
|
||||||
|
, hm_sdi_val
|
||||||
|
, hm_sdi_u95
|
||||||
|
, hm_sdi_l95
|
||||||
|
, m_sdi_val
|
||||||
|
, m_sdi_u95
|
||||||
|
, m_sdi_l95
|
||||||
|
, lm_sdi_val
|
||||||
|
, lm_sdi_u95
|
||||||
|
, lm_sdi_l95
|
||||||
|
, l_sdi_val
|
||||||
|
, l_sdi_u95
|
||||||
|
, l_sdi_l95
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
join cte on cte.nct_id = fdm.nct_id
|
||||||
|
group by
|
||||||
|
fdm.nct_id
|
||||||
|
, current_status
|
||||||
|
, earliest_date_observed
|
||||||
|
, elapsed_duration
|
||||||
|
, n_brands
|
||||||
|
, category_id
|
||||||
|
, h_sdi_val
|
||||||
|
, h_sdi_u95
|
||||||
|
, h_sdi_l95
|
||||||
|
, hm_sdi_val
|
||||||
|
, hm_sdi_u95
|
||||||
|
, hm_sdi_l95
|
||||||
|
, m_sdi_val
|
||||||
|
, m_sdi_u95
|
||||||
|
, m_sdi_l95
|
||||||
|
, lm_sdi_val
|
||||||
|
, lm_sdi_u95
|
||||||
|
, lm_sdi_l95
|
||||||
|
, l_sdi_val
|
||||||
|
, l_sdi_u95
|
||||||
|
, l_sdi_l95
|
||||||
|
order by nct_id , earliest_date_observed
|
||||||
|
; --TODO: join to usp dc dataset
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
WITH trialncts AS (
|
||||||
|
SELECT DISTINCT ts.nct_id
|
||||||
|
FROM history.trial_snapshots ts
|
||||||
|
), nct_to_cui AS (
|
||||||
|
SELECT bi.nct_id,
|
||||||
|
bi.downcase_mesh_term,
|
||||||
|
rr.tty2,
|
||||||
|
rr.rxcui2 AS approved_drug_rxcui,
|
||||||
|
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::text = ANY (ARRAY['BPCK'::text, 'SCD'::text, 'SBD'::text, 'GPCK'::text]))
|
||||||
|
GROUP BY bi.nct_id, bi.downcase_mesh_term, rr.tty2, rr.rxcui2
|
||||||
|
)
|
||||||
|
SELECT nct_to_cui.nct_id,
|
||||||
|
ud."USP Category",
|
||||||
|
ud."USP Class"
|
||||||
|
FROM nct_to_cui
|
||||||
|
JOIN "Formularies".usp_dc ud ON ud.rxcui::bpchar = nct_to_cui.approved_drug_rxcui
|
||||||
|
GROUP BY nct_to_cui.nct_id, ud."USP Category", ud."USP Class"
|
||||||
|
ORDER BY nct_to_cui.nct_id;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE MATERIALIZED VIEW "Formularies".nct_to_brands_through_uspdc
|
||||||
|
AS
|
||||||
|
WITH trialncts AS (
|
||||||
|
SELECT DISTINCT ts.nct_id
|
||||||
|
FROM history.trial_snapshots ts
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
bi.nct_id,
|
||||||
|
count( distinct rr2.rxcui2 ) as brand_name_count
|
||||||
|
FROM ctgov.browse_interventions bi
|
||||||
|
LEFT JOIN rxnorm_migrated.rxnorm_props rp ON bi.downcase_mesh_term::text = rp.propvalue1::text --match mesh terms to rxcui
|
||||||
|
LEFT JOIN rxnorm_migrated.rxnorm_relations rr ON rr.rxcui1 = rp.rxcui -- match rxcui to relations between rxcuis
|
||||||
|
LEFT JOIN rxnorm_migrated.rxnorm_relations rr2 ON rr.rxcui2 = rr2.rxcui1 -- match rxcui to relations between rxcuis
|
||||||
|
WHERE
|
||||||
|
(bi.nct_id::text IN (SELECT trialncts.nct_id FROM trialncts)) --check the nct_id is in our list
|
||||||
|
AND
|
||||||
|
bi.mesh_type::text = 'mesh-list'::text --we are only looking at mesh "list" rxcuis
|
||||||
|
AND rp.propname::text = 'Active_ingredient_name'::text --and we only care about active ingredients linked to \/\/\/\/\/
|
||||||
|
AND (rr.tty2::text = ANY (ARRAY['BPCK'::text, 'SCD'::text, 'SBD'::text, 'GPCK'::text])) --and we are linking from active ingredients ^^^^ to branded packs
|
||||||
|
AND (rr2.tty2::text = 'BN') --and from branded packs back to brand names
|
||||||
|
GROUP BY bi.nct_id --remove duplicates
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
select
|
||||||
|
fdqpe.nct_id
|
||||||
|
--,fdqpe.start_date
|
||||||
|
--,fdqpe.current_enrollment
|
||||||
|
--,fdqpe.enrollment_category
|
||||||
|
,fdqpe.current_status
|
||||||
|
,fdqpe.earliest_date_observed
|
||||||
|
,fdqpe.elapsed_duration
|
||||||
|
,fdqpe.n_brands as identical_brands
|
||||||
|
,ntbtu.brand_name_count
|
||||||
|
,fdqpe.category_id
|
||||||
|
,fdqpe.final_status
|
||||||
|
,fdqpe.h_sdi_val
|
||||||
|
--,fdqpe.h_sdi_u95
|
||||||
|
--,fdqpe.h_sdi_l95
|
||||||
|
,fdqpe.hm_sdi_val
|
||||||
|
--,fdqpe.hm_sdi_u95
|
||||||
|
--,fdqpe.hm_sdi_l95
|
||||||
|
,fdqpe.m_sdi_val
|
||||||
|
--,fdqpe.m_sdi_u95
|
||||||
|
--,fdqpe.m_sdi_l95
|
||||||
|
,fdqpe.lm_sdi_val
|
||||||
|
--,fdqpe.lm_sdi_u95
|
||||||
|
--,fdqpe.lm_sdi_l95
|
||||||
|
,fdqpe.l_sdi_val
|
||||||
|
--,fdqpe.l_sdi_u95
|
||||||
|
--,fdqpe.l_sdi_l95
|
||||||
|
from formatted_data_mat fdqpe
|
||||||
|
join "Formularies".nct_to_brands_through_uspdc ntbtu
|
||||||
|
on fdqpe.nct_id = ntbtu.nct_id
|
||||||
|
;
|
||||||
|
|
||||||
|
--example of multiple reopenings
|
||||||
|
select *
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
where nct_id = 'NCT01239797'
|
||||||
|
|
||||||
|
--attempt to automatically find transition periods
|
||||||
|
with cte1 as (
|
||||||
|
select nct_id, min(earliest_date_observed) over (partition by nct_id) as earliest_closed_enrollment
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
where current_status = 'Active, not recruiting'
|
||||||
|
), cte2 as (
|
||||||
|
select nct_id, max(earliest_date_observed) over (partition by nct_id) latest_open_enrollment
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
where current_status != 'Active, not recruiting'
|
||||||
|
)
|
||||||
|
select
|
||||||
|
cte1.nct_id
|
||||||
|
,cte1.earliest_closed_enrollment
|
||||||
|
,cte2.latest_open_enrollment
|
||||||
|
,cte1.earliest_closed_enrollment - cte2.latest_open_enrollment
|
||||||
|
from cte1
|
||||||
|
join cte2 on cte1.nct_id = cte2.nct_id
|
||||||
|
/*group by
|
||||||
|
cte1.nct_id
|
||||||
|
,cte1.earliest_closed_enrollment
|
||||||
|
,cte2.latest_open_enrollment
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* So ocassionally a study reopens enrollment.
|
||||||
|
* If that didn't happen, then I could just find the first enrollment matching X and/or last enrollment matching Y
|
||||||
|
* to get the transitions
|
||||||
|
* Instead I need to create shifts of statuses between snapshots, and then remove all of those that did not change.
|
||||||
|
*
|
||||||
|
* Better yet, just get the last shift to ANR.
|
||||||
|
* */
|
||||||
|
|
||||||
|
|
||||||
|
/* Take each entry and get the status from a lagged snapshot
|
||||||
|
* Then select each snapshot moving from previous_state to ANR
|
||||||
|
* and filter out everything except the last one.
|
||||||
|
* */
|
||||||
|
with cte as (
|
||||||
|
select
|
||||||
|
nct_id
|
||||||
|
,lag(current_status, 1) over (partition by nct_id order by earliest_date_observed) as previous_status
|
||||||
|
,current_status
|
||||||
|
,earliest_date_observed as date_current
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
), cte2 as (
|
||||||
|
select
|
||||||
|
nct_id
|
||||||
|
,previous_status
|
||||||
|
,current_status
|
||||||
|
,max(date_current) as date_current_max
|
||||||
|
from cte
|
||||||
|
where
|
||||||
|
previous_status != current_status
|
||||||
|
and
|
||||||
|
current_status = 'Active, not recruiting'
|
||||||
|
group by
|
||||||
|
nct_id
|
||||||
|
,previous_status
|
||||||
|
,current_status
|
||||||
|
,date_current
|
||||||
|
)
|
||||||
|
select *
|
||||||
|
from formatted_data_mat fdm
|
||||||
|
join cte2
|
||||||
|
on cte2.nct_id = fdm.nct_id
|
||||||
|
and cte2.date_current_max = fdm.earliest_date_observed
|
||||||
|
; --join back into
|
||||||
|
|
||||||
@ -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,3 @@
|
|||||||
|
# TODO
|
||||||
|
|
||||||
|
Code up a data extraction tool that uses llama3 or a similar quality source to extract the data that I need from the extended aact_database
|
||||||
@ -0,0 +1 @@
|
|||||||
|
backup/2023-09-06_aactdb_with_matches.sql.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
RESTORE_DUMP_GZ="${1:-aact_db_backup_20250107_133822.sql.gz}"
|
||||||
|
POSTGRES_USER=root
|
||||||
|
POSTGRES_PASSWORD=root
|
||||||
|
POSTGRES_DB=aact_db
|
||||||
|
|
||||||
|
CONTAINER_NAME="${POSTGRES_DB}-restored-$(date -I)"
|
||||||
|
|
||||||
|
#start container
|
||||||
|
podman run \
|
||||||
|
-e POSTGRES_PASSWORD="${POSTGRES_PASSWORD}" \
|
||||||
|
-e POSTGRES_USER="${POSTGRES_USER}" \
|
||||||
|
-e POSTGRES_DB="${POSTGRES_DB}" \
|
||||||
|
--name "${CONTAINER_NAME}" \
|
||||||
|
--detach \
|
||||||
|
--network research-network \
|
||||||
|
--shm-size=512mb \
|
||||||
|
--volume ./backup/:/backup/ \
|
||||||
|
-p 5432:5432\
|
||||||
|
postgres:14-alpine
|
||||||
|
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Function to check if PostgreSQL is ready
|
||||||
|
function check_postgres {
|
||||||
|
podman exec -i "${CONTAINER_NAME}" psql -h localhost -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" -c '\q' > /dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Wait for PostgreSQL to be ready
|
||||||
|
until check_postgres; do
|
||||||
|
echo "Waiting for PostgreSQL to be ready..."
|
||||||
|
sleep 4
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "PostgreSQL is ready. Restoring the database..."
|
||||||
|
|
||||||
|
# Decompress the dump file and restore it to the database
|
||||||
|
podman exec -i "${CONTAINER_NAME}" sh -c "gunzip -c /backup/${RESTORE_DUMP_GZ} | psql -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"
|
||||||
|
|
||||||
|
echo "Database restoration complete."
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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)
|
||||||
|
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
import ollama
|
||||||
|
|
||||||
|
import psycopg
|
||||||
|
from psycopg.rows import dict_row
|
||||||
|
from typing import List, Dict
|
||||||
|
|
||||||
|
def fetch_all_rows(conn_params: dict) -> List[Dict]:
|
||||||
|
# Establish a connection to the PostgreSQL database
|
||||||
|
conn = psycopg.connect(**conn_params, row_factory=dict_row)
|
||||||
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
# Define your SQL query to select all rows from the table
|
||||||
|
sql_query = "SELECT * FROM public.primary_design_outcomes;"
|
||||||
|
|
||||||
|
# Execute the query
|
||||||
|
cursor.execute(sql_query)
|
||||||
|
|
||||||
|
# Fetch all rows from the result set
|
||||||
|
rows = cursor.fetchall()
|
||||||
|
|
||||||
|
# Close the cursor and connection
|
||||||
|
cursor.close()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
return rows
|
||||||
|
|
||||||
|
# Example usage
|
||||||
|
conn_params = {
|
||||||
|
"dbname": "aact_db",
|
||||||
|
"user": "root",
|
||||||
|
"password": "root",
|
||||||
|
"host": "localhost",
|
||||||
|
"port": "5432"
|
||||||
|
}
|
||||||
|
|
||||||
|
outcome_description = '''
|
||||||
|
Measure: {measure}
|
||||||
|
Time Frame: {time_frame}
|
||||||
|
Description: {description}
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
#check for model
|
||||||
|
|
||||||
|
#get information
|
||||||
|
rows_dicts = fetch_all_rows(conn_params)
|
||||||
|
|
||||||
|
for row in rows_dicts[:3]:
|
||||||
|
text_data = outcome_description.format(**row)
|
||||||
|
r = ollama.generate(model='youainti/llama3.1-extractor:2024-08-28.2', prompt=text_data)
|
||||||
|
|
||||||
|
print(text_data)
|
||||||
|
print(r["response"])
|
||||||
|
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
FROM llama3.1
|
||||||
|
PARAMETER num_ctx 8192
|
||||||
|
PARAMETER seed 11021585
|
||||||
|
SYSTEM """
|
||||||
|
You are a Natural Language Processor, tasked with extracting data about outcome measures from textual tables.
|
||||||
|
You are to extract the longest observation time from the primary objectives for this clinical trial.
|
||||||
|
I need you to distinguish between trials that have a specified period during which they track participants
|
||||||
|
and those trials that don't.
|
||||||
|
|
||||||
|
Return results as JSON, with the format
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"longest_observation_scalar": <number>,
|
||||||
|
"longest_observation_unit: <string: minutes, hours, days, weeks, months, years>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Do not return any other commentary.
|
||||||
|
If the study does not have a specified end of observation, set the values to `null`.
|
||||||
|
If the text does not appear to be related to clinical trials, return `{ null }`
|
||||||
|
|
||||||
|
For example:
|
||||||
|
- 'baseline to week 3' should give: `{ "longest_observation_scalar": 3, "longest_observation_unit": "weeks" }`
|
||||||
|
- 'tracked 4 months' should give: `{ "longest_observation_scalar": 4, "longest_observation_unit": "months"}`
|
||||||
|
- 'randomization to 14 months' should give `{ "longest_observation_scalar": 14, "longest_observation_unit": "months"}`
|
||||||
|
- 'After day 1 to week 48' should give `{ "longest_observation_scalar": 48, "longest_observation_unit": "weeks"}`
|
||||||
|
- 'randomization to 14 months' should give `{ "longest_observation_scalar": 14, "longest_observation_unit": "months"}`
|
||||||
|
- 'baseline until death' should give: `{ "longest_observation_scalar": null, "longest_observation_unit": null }`
|
||||||
|
- 'progression free survival up to 4 years' should give: `{ "longest_observation_scalar": null, "longest_observation_unit": null }`
|
||||||
|
- 'the quick brown fox jumped over the lazy dog for one hour' should give: `{null}`
|
||||||
|
|
||||||
|
"""
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
### Template:
|
||||||
|
{
|
||||||
|
"longest_observation_scalar": "",
|
||||||
|
"longest_observation_unit": "",
|
||||||
|
}
|
||||||
|
### Examples:
|
||||||
|
|
||||||
|
|
||||||
|
### Text:
|
||||||
|
|
||||||
|
{ "longest_observation_scalar": 3, "longest_observation_unit": "weeks" }
|
||||||
|
{ "longest_observation_scalar": 4, "longest_observation_unit": "months"}
|
||||||
|
{ "longest_observation_scalar": 14, "longest_observation_unit": "months"}
|
||||||
|
{ "longest_observation_scalar": 48, "longest_observation_unit": "weeks"}
|
||||||
|
{ "longest_observation_scalar": 14, "longest_observation_unit": "months"}
|
||||||
|
{ "longest_observation_scalar": null, "longest_observation_unit": null }
|
||||||
|
{ "longest_observation_scalar": null, "longest_observation_unit": null }
|
||||||
|
|
||||||
|
"""
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
USP[[:space:]]DC/USP_DC_12_2021_RELEASE_1.0.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]DC/usp_dc_pub_2023_release_2.0_updated_final.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/Final_Report_and_Summary_of_Methodology_and_Approach_v1.1.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/MMG_v8.0_Alignment_File.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/Summary_of_Changes_between_MMGv7.0_and_MMGv8.0.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/USP_Medicare_Model_Guidelines_v8.0__All_Excel_Spreadsheets_.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/USP_Medicare_Model_Guidelines_v8.0__Categories_and_Classes_.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/USP_Medicare_Model_Guidelines_v8.0__Showing_changes_from_v7.0_.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
USP[[:space:]]MMG/USP_Medicare_Model_Guidelines_v8.0__With_Example_Part_D_Drugs_.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
Binary file not shown.
BIN
other_data/USP MMG/Final_Report_and_Summary_of_Methodology_and_Approach_v1.1.pdf (Stored with Git LFS)
BIN
other_data/USP MMG/Final_Report_and_Summary_of_Methodology_and_Approach_v1.1.pdf (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
|
Binary file not shown.
Binary file not shown.
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__All_Excel_Spreadsheets_.xlsx (Stored with Git LFS)
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__All_Excel_Spreadsheets_.xlsx (Stored with Git LFS)
Binary file not shown.
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__Categories_and_Classes_.pdf (Stored with Git LFS)
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__Categories_and_Classes_.pdf (Stored with Git LFS)
Binary file not shown.
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__Showing_changes_from_v7.0_.pdf (Stored with Git LFS)
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__Showing_changes_from_v7.0_.pdf (Stored with Git LFS)
Binary file not shown.
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__With_Example_Part_D_Drugs_.pdf (Stored with Git LFS)
BIN
other_data/USP MMG/USP_Medicare_Model_Guidelines_v8.0__With_Example_Part_D_Drugs_.pdf (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
|
BIN
other_data/VA Formulary/PharmacyProductSystem_NationalDrugCodeExtract.xlsx (Stored with Git LFS)
BIN
other_data/VA Formulary/PharmacyProductSystem_NationalDrugCodeExtract.xlsx (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue