You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.4 KiB
SQL
117 lines
3.4 KiB
SQL
-- Create a schema handling trial history.
|
|
CREATE SCHEMA history;
|
|
|
|
--Create role for anyone who needs to both select and insert on historical data
|
|
CREATE ROLE history_writer;
|
|
GRANT CONNECT ON DATABASE aact_db to history_writer;
|
|
|
|
GRANT USAGE ON SCHEMA history TO history_writer;
|
|
|
|
GRANT INSERT,SELECT ON ALL TABLES IN SCHEMA http TO history_writer;
|
|
|
|
|
|
--Create role for anyone who only needs selection access to historical data, such as for analysis
|
|
CREATE ROLE history_reader;
|
|
GRANT CONNECT ON DATABASE aact_db to history_reader;
|
|
|
|
GRANT USAGE ON SCHEMA history TO history_reader;
|
|
|
|
GRANT SELECT ON ALL TABLES IN SCHEMA http TO history_reader;
|
|
|
|
|
|
/* History Tables
|
|
Below is where I would construct the parsed trial history tables that I need.
|
|
|
|
Possible fields
|
|
nct_id
|
|
version
|
|
--Study Status
|
|
overall_status^
|
|
primary_completion_date^
|
|
completion_date^
|
|
last_update_submitted_date
|
|
--SponsorCollaborators
|
|
sponsor (multi?)
|
|
collaborators (multi?)
|
|
--Oversight
|
|
fda_regulated_drug (ignore)
|
|
fda_regulated_device (ignore)
|
|
dmc (ignore)
|
|
--StuldyDescription
|
|
summary
|
|
detailed_description
|
|
--Conditions
|
|
Conditions
|
|
Keywords
|
|
--StudyDesign
|
|
Study type
|
|
Primary Purpose
|
|
Study Phase
|
|
Interventional Study Model
|
|
Number of Arms
|
|
Masking
|
|
Allocation
|
|
Enrollment ^
|
|
--ArmsAndInterventions
|
|
Arms (multiple) (Ignore)
|
|
--ProtocolOutcomeMeasures
|
|
--Eligibility
|
|
--ContactsLocation
|
|
--IPDSharing
|
|
--References
|
|
--ParticipantFlow
|
|
--BaselineCharacteristics
|
|
--ROutcomeMeasures
|
|
--AdverseEvents
|
|
--LimitationsAndCaveats
|
|
--More Information
|
|
|
|
*/
|
|
|
|
CREATE TYPE history.updatable_catetories AS ENUM
|
|
('Actual', 'Anticipated', 'Expected');
|
|
|
|
ALTER TYPE history.updatable_catetories
|
|
OWNER TO root;
|
|
|
|
COMMENT ON TYPE history.updatable_catetories
|
|
IS 'This enum is used to capture the different types of categories that a date or enrollemnt figure may have.';
|
|
|
|
|
|
|
|
CREATE TYPE history.study_statuses AS ENUM
|
|
('Available', 'Withdrawn', 'Withheld', 'Temporarily not available', 'Active, not recruiting', 'Recruiting', 'Not yet recruiting', 'Enrolling by invitation', 'Suspended', 'No longer available', 'Approved for marketing', 'Unknown status', 'Completed', 'Terminated');
|
|
|
|
ALTER TYPE history.study_statuses
|
|
OWNER TO root;
|
|
|
|
COMMENT ON TYPE history.study_statuses
|
|
IS 'This enum is used to record study status. These are pulled from the ClinicalTrials.gov documentation.';
|
|
|
|
|
|
-- Table: history.trial_snapshots
|
|
|
|
DROP TABLE IF EXISTS history.trial_snapshots;
|
|
|
|
CREATE TABLE IF NOT EXISTS history.trial_snapshots
|
|
(
|
|
nct_id character varying(15) COLLATE pg_catalog."default" NOT NULL,
|
|
version integer NOT NULL,
|
|
primary_completion_date timestamp without time zone,
|
|
primary_completion_date_category history.updatable_catetories,
|
|
start_date timestamp without time zone,
|
|
start_date_category history.updatable_catetories,
|
|
completion_date timestamp without time zone,
|
|
completion_date_category history.updatable_catetories,
|
|
overall_status history.study_statuses,
|
|
enrollment integer,
|
|
enrollment_category history.updatable_catetories,
|
|
sponsor character varying(255) COLLATE pg_catalog."default",
|
|
responsible_party character varying(255) COLLATE pg_catalog."default",
|
|
CONSTRAINT trial_snapshots_pkey PRIMARY KEY (nct_id, version)
|
|
);
|
|
|
|
|
|
ALTER TABLE IF EXISTS history.trial_snapshots
|
|
OWNER to root;
|