diff --git a/Parser/NCT00658567.html b/Parser/NCT00658567.html deleted file mode 100644 index 96656f3..0000000 --- a/Parser/NCT00658567.html +++ /dev/null @@ -1,2892 +0,0 @@ - - - - - - History of Changes for Study: NCT00658567 - - - - - - - - - - -
ClinicalTrials.gov -
-
-
-
History of Changes for Study: - NCT00658567
-
A Study of Safety and Efficacy - of Pimavanserin (ACP-103) in Patients With Parkinson's Disease Psychosis
-
Latest version (submitted April 18, 2017) on - ClinicalTrials.gov
-
-
-
-
-
-
    -
  • A study version is represented by a row in the table.
  • -
  • Select two study versions to compare. One each from columns A and B.
  • -
  • Choose either the "Merged" or "Side-by-Side" comparison format to specify how the - two study versions are to be displayed. The Side-by-Side format only applies to the Protocol section of - the study.
  • -
  • Click "Compare" to do the comparison and show the differences.
  • -
  • Select a version's Submitted Date link to see a rendering of the study for that version.
  • -
  • The yellow A/B choices in the table indicate the - study versions currently compared below. A yellow - table row indicates the study version currently being viewed.
  • -
  • Hover over the "Recruitment Status" to see how the - study's recruitment status changed.
  • -
  • Study edits or deletions are displayed in red.
  • -
  • Study additions are displayed in green.
  • -
-
-
-
-
-
-
- Study Record Versions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionAB - Submitted DateChanges
1 - April 10, - 2008 - None (earliest Version on record) -
2 - - May 19, - 2008 - Study Status and Contacts/Locations
3 - - August 25, - 2008 - Study Status and Contacts/Locations
4 - - September 24, 2008 - Study Status and Contacts/Locations
5 - - October - 20, 2008 - Study Status and Contacts/Locations
6 - - November - 17, 2008 - Study Status and Contacts/Locations
7 - - December - 17, 2008 - Contacts/Locations, Study Status and Eligibility -
8 - - February - 16, 2009 - Study Status and Contacts/Locations
9 - - March 26, - 2009 - Study Status and Contacts/Locations
10 - - April 16, - 2009 - Study Status and Contacts/Locations
11 - - June 16, - 2009 - Contacts/Locations and Study Status
12 - - July 16, - 2009 - Study Status and Contacts/Locations
13 - - August 4, - 2010 - Recruitment Status, Study Status, Contacts/Locations - and Sponsor/Collaborators
14 - - August - 29, 2014 - Study Status, Outcome Measures, - Sponsor/Collaborators, Arms and Interventions, Study Design, Results and Eligibility
15 - April 18, - 2017 - Oversight, Study Status, IPDSharing and - Contacts/Locations
-
- -
- Comparison Format: -
    -
  • -
  • -
-
-
-
-
-
-
-
-
-
- -
-
Scroll up to access the controls
-
-
- Changes (Merged) for Study: NCT00658567
- April 10, 2008 (v1) -- April 18, 2017 (v15)

Changes in: Study Status, Sponsor/Collaborators, Oversight, Study Design, Arms and Interventions, Outcome Measures, Eligibility, Contacts/Locations, IPDSharing - and Results - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- Open or close this module - Study Identification -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Unique Protocol ID:ACP-103-014
Brief Title:A Study of Safety and Efficacy of Pimavanserin (ACP-103) in Patients With Parkinson's - Disease Psychosis
Official Title:
Secondary IDs:
-
-
-
-
-
-
-
-
- Open or close this module - Study Status -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Record Verification:April 2008 2017
Overall Status:Recruiting Completed
Study Start:March 2008
Primary Completion: December 2009 [Actual]
Study Completion:December 2009 [ Anticipated Actual]
First Submitted:April 10, 2008
First Submitted that
Met QC Criteria:
April 10, 2008
First Posted:April 15, 2008 [Estimate]
Results First Submitted: February 6, 2014
Results First Submitted that
Met QC - Criteria:
August 29, 2014
Results First Posted: September 9, 2014 [Estimate]
Last Update Submitted that
Met QC Criteria: -
April 10 18, 2008 2017
Last Update Posted:April 15, 2008 [Estimate] May 19, - 2017 [Actual]
-
-
-
-
-
-
-
-
- Open or close this module - Sponsor/Collaborators -
- - - - - - - - - - - - - - - - - - - - -
Sponsor:ACADIA Pharmaceuticals Inc.
Responsible Party: Sponsor
Collaborators:
-
-
-
-
-
-
-
-
- Open or close this module - Oversight -
- - - - - - - - - - - - - - - - - - - - - -
U.S. FDA-regulated Drug: Yes
U.S. FDA-regulated Device: No
Data Monitoring: No
-
-
-
-
-
-
-
-
- Open or close this module - Study Description -
- - - - - - - - - - - - - - - - - -
Brief Summary:This study will evaluate the safety and efficacy of two dose levels of pimavanserin - (ACP-103) compared to placebo in patients with Parkinson's disease psychosis.
Detailed Description:
-
-
-
-
-
-
-
-
- Open or close this module - Conditions -
- - - - - - - - - - - - - - - - - -
Conditions:Parkinson's Disease Psychosis
Keywords:
-
-
-
-
-
-
-
-
- Open or close this module - Study Design -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Study Type:Interventional
Primary Purpose:Treatment
Study Phase:Phase 3
Interventional Study Model:Parallel Assignment
Number of Arms:3
Masking:Quadruple (Participant, Care Provider, Investigator, Outcomes Assessor)
Allocation:Randomized
Enrollment:240 [Anticipated] 123 - [Actual]
-
-
-
-
-
-
-
-
- Open or close this module - Arms and Interventions -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
ArmsAssigned Interventions
Experimental: 2
pimavanserin tartrate (ACP-103) 20 mg, tablet, - once daily by mouth, 6 weeks
-
Drug: Pimavanserin tartrate (ACP-103)
20 mg, tablet, once daily - by mouth, for six weeks
-
Placebo Comparator: 3 Placebo -
Placebo tablet, once daily by mouth, 6 weeks
-
Drug: Pimavanserin tartrate (ACP-103)
Placebo, tablet, once - daily by mouth, for six weeks
-
Experimental: 1
pimavanserin tartrate (ACP-103) 10 mg, tablet, - once daily by mouth, 6 weeks
-
Drug: Pimavanserin tartrate (ACP-103)
10 mg, tablet, once daily - by mouth, for six weeks
-
-
-
-
-
-
-
-
-
-
- Open or close this module - Outcome Measures -
- - - - - - - - - [See Results - Section.] - - - - - - - - - - - - - - - - - -
Primary Outcome Measures:
1.Antipsychotic efficacy will be assessed using the scale for the - assessment of Positive Symptoms (SAPS) Antipsychotic - Efficacy
[ Time Frame: 6 weeks Each study visit (i.e. Days 1, 8, 15, 29 and 42) ]

-

Antipsychotic efficacy was defined as a decrease in the severity - and/or frequency of hallucinations and/or delusions. This is measured as the change from - baseline (Day 1) to Day 42 in the Scale for the Assessment of Positive Symptoms - - Hallucinations and Delusions scales (SAPS-H+D) score for the ITT Analysis Set. The - possible total score is 1 to 100 and a negative change in score indicates improvement. -

- -

Analysis Method: Analysis of Covariance (ANCOVA) and missing data - was imputed using Last Observation Carried Forward (LOCF) method. - -

- -
Secondary Outcome Measures:
1. - Motor Symptoms Change From Baseline (Negative = - Improvement)
[ Time Frame: Each study visit (i.e. Days 1, - 8, 15, 29 and 42) ]

-

Motor symptoms were measured using the change from baseline (Day - 1) to Day 42 in the combined score of the Unified Parkinson's Disease Rating Scale - (UPDRS) Part II (Activities of Daily Living) and Part III (Motor Examination). The total - possible score is 0 to 160 and a negative change in score indicates improvement. -

- -

Analysis Method: ANCOVA, and missing data was imputed using LOCF - method. The UPDRS Parts II+III score was analyzed by constructing 2-sided 95% confidence - intervals (CIs) on the difference between each pimavanserin dose group and placebo mean - change from baseline. Non-inferiority was concluded if the upper limit of the CI was less - than or equal to 5. -

- -
-
-
-
-
-
-
-
-
- Open or close this module - Eligibility -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Minimum Age:40 Years
Maximum Age:
Sex:All
Gender Based:
Accepts Healthy Volunteers:No
Criteria: -

Inclusion Criteria:

-
    -
  • A clinical diagnosis of Parkinson's disease with a minimum duration of 1 year
  • -
  • Presence of visual and/or auditory hallucinations, and/or delusions, occurring during - the four weeks prior to study screening
  • -
  • Psychotic symptoms must have developed after Parkinson's disease diagnosis was - established
  • -
  • Subject must be on stable dose of anti-Parkinson's medication for 1 month prior to - Study Day 1 (Baseline) and during the trial
  • -
  • Subject that has received stereotaxic surgery for subthalamic nucleus deep brain - stimulation must be at least 6 months post surgery and the stimulator settings must have - been stable for at least 1 month prior to Study Day 1 (Baseline) and must remain stable - during the trial
  • -
  • The subject is willing and able to provide consent
  • -
  • Caregiver is willing and able to accompany the subject to all visits
  • -
-

Exclusion Criteria:

-
    -
  • Subject has a history of significant psychotic disorders prior to or concomitantly with - the diagnosis of Parkinson's disease including, but not limited to, schizophrenia or - bipolar disorder
  • -
  • Subject has received previous ablative stereotaxic surgery ( is i.e., pallidotomy and thalamotomy) to treat Parkinson's - disease
  • -
  • Subject has current evidence of a serious and or unstable cardiovascular, respiratory, - gastrointestinal, renal, mematologic hematologic or other medical disorder
  • -
  • Subject has had a myocardial infarction in last six months
  • -
  • Subject has any surgery planned during the screening, treatment or follow-up periods -
  • -
-

Patients will be evaluated at screening to ensure that all criteria for study participation - are met. These evaluations will include specific measures of psychosis severity, delirium, - dementia, cardiovascular condition, and pregnancy status. Patients may be excluded from the - study based on these assessments (and specifically if it is determined that their baseline - health and psychiatric condition do not meet all protocol-specified entry criteria).

-
-
-
-
-
-
-
-
-
- Open or close this module - Contacts/Locations -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Central Contact Person:Kimberly Wilson
Email: - ACP-103clintrials@acadia-pharm.com
Locations: United States, - California
- La Habra, California, United States, - 90631
Laguna Hills, California, United States, - 92653
United States, - California
[Recruiting]
Reseda, California, - United States
Ventura, California, United States, - 93003
United States, - Colorado
Englewood, Colorado, United States, - 80113
United States, - Connecticut
Farmington, Connecticut, United States, - 06030
United States, - Florida
Deerfield Beach, Florida, United States, - 33064
Panama City, Florida, United States, - 32405
Sarasota, Florida, United States, - 34233
United States, - Massachusetts
Boston, Massachusetts, United States, - 02215
Worcester, Massachusetts, United States, - 01655
United States, - Michigan
Clinton, Michigan, United States, - 48035 -
Detroit, Michigan, United States, - 48201
East Lansing, Michigan, United States, - 48824
United States, - Missouri
Columbia, Missouri, United States, - 65201
United States, - Nebraska
Omaha, Nebraska, United States, - 68131
United States, New - York
Albany, New York, United States, - 12208
Commack, New York, United States, - 11725
United States, North - Carolina
Charlotte, North Carolina, United States, - 28204
Durham, North Carolina, United States, - 27705
United States, North - Carolina
[Recruiting]
New Bern, North - Carolina, United States
United States, Ohio -
Toledo, Ohio, United States, - 43614
United States, - Pennsylvania
Philadelphia, Pennsylvania, United States, - 19131
Philadelphia, Pennsylvania, United States, - 19141
United States, Texas -
Houston, Texas, United States, - 77030
United States, - Vermont
Burlington, Vermont, United States, - 05401
Austria
Innsbruck, Austria, 6020
Belgium
Brussels, Belgium, 1090
Ottignies, Belgium, 1340
Roeselare, Belgium, 8800
Italy
Chieti Scalo, Italy, 66013 -
Grossetto, Italy, 58100
Roma, Italy, 00163
Roma, Italy, 00185
Poland
Bydgoszcz, Poland, 85-096
Katowice, Poland, 40-752
Lodz, Poland, 90-130
Lublin, Poland, 20-090
Portugal
Coimbra, Portugal, 3000-548 -
Lisboa, Portugal, 1649-028 -
Porto, Portugal, 4099-001
Serbia
Belgrade, Serbia, 11000
Spain
Barcelona, Spain, 08003
Barcelona, Spain, 08036
Barcelona, Spain, 08195
San Sebastian, Spain, 20009 -
Santiago De Compostela, Spain, - 15706
Sweden
Jonkoping, Sweden, SE-551 85 -
Linkoping, Sweden, SE-581 85 -
Stockholm, Sweden, SE-112 45 -
-
-
-
-
-
-
-
-
- Open or close this module - IPDSharing -
- - - - - - - - - - - - - -
Plan to Share IPD: No
-
-
-
-
-
-
-
-
- Open or close this module - References -
- - - - - - - - - - - - - - - - - - - - - -
Citations:
Links:
Available IPD/Information:
-
-
-
-
-
-
Study Results
-
-
-
-
- Open or close this module - Participant Flow -
- - - - - - - - - - - - - - - - - - - - - - - -
Recruitment Details -
Pre-assignment - Details
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Arm/Group - Title Placebo - - Pimavanserin 10 mg - - Pimavanserin 20 mg -
Arm/Group DescriptionPlacebo tablet, once daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 10 mg, tablet, once daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 20 mg, tablet, once daily by mouth, 6 weeks - -
-
Period Title: Overall Study
Started - 40 42 41
Completed 32 38 35
Not - Completed 8 4 6
Reason Not Completed
Adverse - Event 5 2 3
Voluntary - Withdrawal of Consent 2 0 2
Physician - Decision 0 1 0
At - Discretion of Sponsor 1 1 1
-
-
-
-
-
-
-
-
-
- Open or close this module - Baseline Characteristics -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Arm/Group Title - Placebo - 10 mg - 20 mg - Total
Arm/Group - Description - Placebo tablet, once daily by mouth, 6 weeks - - - Pimavanserin tartrate (ACP-103) 10 mg, tablet, once daily by - mouth, 6 weeks - - - Pimavanserin tartrate (ACP-103) 20 mg, tablet, once daily by - mouth, 6 weeks - - - Total of all reporting groups - -
Overall Number - of Baseline Participants 39 41 41 121
Baseline - Analysis Population Description - [Not Specified]
- Age, Categorical -
Measure Type: Count of Participants
Unit of measure: Participants
-
- Number Analyzed 39 Participants 41 Participants 41 Participants 121 Participants
<=18 years -
0
-
0%
-
-
0
-
0%
-
-
0
-
0%
-
-
0
-
0%
-
Between 18 and 65 years -
7
-
17.95%
-
-
7
-
17.07%
-
-
7
-
17.07%
-
-
21
-
17.36%
-
>=65 years -
32
-
82.05%
-
-
34
-
82.93%
-
-
34
-
82.93%
-
-
100
-
82.64%
-
- Age, Continuous -
Mean ( Standard - Deviation)
Unit of measure: years
-
- Number Analyzed 39 Participants 41 Participants 41 Participants 121 Participants
73.0 (7.91) 71.0 (7.44) 72.1 (8.15) 72.0 (7.82)
- Sex: Female, Male -
Measure Type: Count of Participants
Unit of measure: Participants
-
- Number Analyzed 39 Participants 41 Participants 41 Participants 121 Participants
Female -
12
-
30.77%
-
-
15
-
36.59%
-
-
17
-
41.46%
-
-
44
-
36.36%
-
Male -
27
-
69.23%
-
-
26
-
63.41%
-
-
24
-
58.54%
-
-
77
-
63.64%
-
Region of Enrollment -
Measure Type: Number
Unit of measure: participants
-
- Number Analyzed 39 Participants 41 Participants 41 Participants 121 Participants
-
United States
-
18 17 18 53
-
Europe
-
21 24 23 68
- -
-
-
-
-
-
-
-
-
- Open or close this module - Outcome Measures -
- - - - - - - - - - - - - - - -
-
- 1. Primary Outcome: -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Title Antipsychotic - Efficacy
Description - -

Antipsychotic efficacy was defined as a decrease in the - severity and/or frequency of hallucinations and/or delusions. This is measured as - the change from baseline (Day 1) to Day 42 in the Scale for the Assessment of - Positive Symptoms - Hallucinations and Delusions scales (SAPS-H+D) score for the - ITT Analysis Set. The possible total score is 1 to 100 and a negative change in - score indicates improvement. -

- -

Analysis Method: Analysis of Covariance (ANCOVA) and - missing data was imputed using Last Observation Carried Forward (LOCF) method. -

- -
Time Frame - Each study visit (i.e. Days 1, 8, 15, 29 and 42)
Outcome Measure Data
Analysis Population Description -
This is the "Intent to - Treat" population, defined as patients who received at least one dose of study - drug and had both the baseline SAPS assessment and at least one post-baseline SAPS - assessment. - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-  
Arm/Group Title Placebo Pimavanserin - 10 mg Pimavanserin - 20 mg
Arm/Group - DescriptionPlacebo tablet, once daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 10 mg, tablet, once - daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 20 mg, tablet, once - daily by mouth, 6 weeks - -
Overall Number - of Participants Analyzed 38 38 41
-
Least Squares Mean - (95% Confidence Interval)
Unit of Measure: Scores on the SAPS H+D scale
-
-
Change from - Baseline
-
-4.4 (-6.5 to - -2.3) NA (NA to NA) [1] -6.5 (-8.5 to - -4.5)
-
Difference of Least - Squares Mean versus Placebo
-
NA (NA to NA) [2] NA (NA to NA) [1] -2.1 (-4.9 to - 0.8)
-
-
- - - - - - - - - - - -
[1] NA - Explanation: Only the high dose - comparison was incorporated in the ANCOVA model analysis following the early - termination of the study. The prospective SAP eliminated the analysis of the - low dose, 10 mg arm. - -
[2] NA - Explanation: Calculation is a - comparison of active arm versus placebo. - -
-
-
-
-
-
- 2. Secondary Outcome: -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Title Motor Symptoms - Change From Baseline (Negative = Improvement)
Description - -

Motor symptoms were measured using the change from - baseline (Day 1) to Day 42 in the combined score of the Unified Parkinson's - Disease Rating Scale (UPDRS) Part II (Activities of Daily Living) and Part III - (Motor Examination). The total possible score is 0 to 160 and a negative change in - score indicates improvement. -

- -

Analysis Method: ANCOVA, and missing data was imputed - using LOCF method. The UPDRS Parts II+III score was analyzed by constructing - 2-sided 95% confidence intervals (CIs) on the difference between each pimavanserin - dose group and placebo mean change from baseline. Non-inferiority was concluded if - the upper limit of the CI was less than or equal to 5. -

- -
Time Frame - Each study visit (i.e. Days 1, 8, 15, 29 and 42)
Outcome Measure Data
Analysis Population Description -
This is the "Intent to - Treat" population, defined as patients who received at least one dose of study - drug and had both the baseline SAPS assessment and at least one post-baseline SAPS - assessment. - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-  
Arm/Group Title Placebo Pimavanserin - 10 mg Pimavanserin - 20 mg
Arm/Group - DescriptionPlacebo tablet, once daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 10 mg, tablet, once - daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 20 mg, tablet, once - daily by mouth, 6 weeks - -
Overall Number - of Participants Analyzed 38 38 41
-
Least Squares Mean - (95% Confidence Interval)
Unit of Measure: Score on UPDRS-II+III scale.
-
-
Change from - Baseline
-
-1.8 (-4.6 to - 1.0) NA (NA to NA) [1] -3.9 (-6.6 to - -1.2)
-
Difference of Least - Squares Mean versus Placebo
-
NA (NA to NA) [2] NA (NA to NA) [1] -2.1 (-5.9 to - 1.8)
-
-
- - - - - - - - - - - -
[1] NA - Explanation: Only the high dose - comparison was incorporated in the ANCOVA model analysis following the early - termination of the study. The prospective SAP eliminated the analysis of the - low dose, 10 mg arm. - -
[2] NA - Explanation: Calculation is a - comparison of active arm versus placebo. - -
-
-
-
-
-
-
-
-
-
-
-
-
- Open or close this module - Adverse Events -
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
Time - Frame 6 - weeks
- Adverse Event Reporting DescriptionFrom the time the informed consent was signed, adverse events were - recorded in the subject's source documents and entered into the appropriate eCRF - pages at the Screening visit, at visits on Study Days 1, 8, 15, 29, 42 and Day 70 or 4 - weeks after the last dose for subjects who do not continue into the open-label, - extension protocol. - -
 
Arm/Group Title Placebo Pimavanserin 10 mg Pimavanserin 20 mg
Arm/Group DescriptionPlacebo tablet, once daily by mouth, 6 weeks - - Pimavanserin tartrate (ACP-103) 10 mg, tablet, once daily by mouth, 6 - weeks - - Pimavanserin tartrate (ACP-103) 20 mg, tablet, once daily by mouth, 6 - weeks - -
All-Cause Mortality
  Placebo Pimavanserin 10 - mg Pimavanserin 20 - mg
 Affected / At Risk (%) - # EventsAffected / At Risk (%) - # EventsAffected / At Risk (%) - # Events
Total / / /
Serious Adverse Events
  Placebo Pimavanserin 10 - mg Pimavanserin 20 - mg
 Affected / At Risk (%) - # EventsAffected / At Risk (%) - # EventsAffected / At Risk (%) - # Events
Total 2 / 39 ( 5.13%) 3 / 41 ( 7.32%) 1 / 41 ( 2.44%)
Infections and infestations
Gastroenteritis † A - 1 / 39 ( 2.56%) 1 0 / 41 ( 0%) 0 0 / 41 ( 0%) 0
Injury, poisoning and procedural complications
Fall † A 0 / 39 ( 0%) 0 1 / 41 ( 2.44%) 1 0 / 41 ( 0%) 0
Hip fracture † A - 0 / 39 ( 0%) 0 1 / 41 ( 2.44%) 1 0 / 41 ( 0%) 0
Nervous system disorders
Parkinson's disease † A - 0 / 39 ( 0%) 0 0 / 41 ( 0%) 0 1 / 41 ( 2.44%) 1
Psychiatric disorders
Delirium † A 1 / 39 ( 2.56%) 1 0 / 41 ( 0%) 0 0 / 41 ( 0%) 0
Delusion † A 0 / 39 ( 0%) 0 1 / 41 ( 2.44%) 2 0 / 41 ( 0%) 0
Delusional disorder, persecutory type † A 0 / 39 ( 0%) 0 1 / 41 ( 2.44%) 1 0 / 41 ( 0%) 0
Mental status changes † A - 1 / 39 ( 2.56%) 1 0 / 41 ( 0%) 0 0 / 41 ( 0%) 0
Indicates events were collected by systematic assessment.
- ATerm from vocabulary, MedDRA (11.1)
-
Other (Not Including Serious) Adverse Events -
Frequency Threshold for Reporting Other Adverse Events 5.00%
  Placebo Pimavanserin 10 - mg Pimavanserin 20 - mg
 Affected / At Risk (%) - # EventsAffected / At Risk (%) - # EventsAffected / At Risk (%) - # Events
Total 12 / 39 ( 30.77%) 4 / 41 ( 9.76%) 8 / 41 ( 19.51%)
Injury, poisoning and procedural complications
Fall † A 3 / 39 ( 7.69%) 5 2 / 41 ( 4.88%) 3 3 / 41 ( 7.32%) 3
Nervous system disorders
Dizziness † A 2 / 39 ( 5.13%) 2 0 / 41 ( 0%) 0 1 / 41 ( 2.44%) 1
Somnolence † A 2 / 39 ( 5.13%) 2 1 / 41 ( 2.44%) 1 1 / 41 ( 2.44%) 1
Psychiatric disorders
Hallucination † A - 2 / 39 ( 5.13%) 2 0 / 41 ( 0%) 0 2 / 41 ( 4.88%) 2
Insomnia † A 1 / 39 ( 2.56%) 1 0 / 41 ( 0%) 0 3 / 41 ( 7.32%) 3
Vascular disorders
Orthostatic hypotension † A - 3 / 39 ( 7.69%) 3 2 / 41 ( 4.88%) 2 0 / 41 ( 0%) 0
Indicates events were collected by systematic assessment.
- ATerm from vocabulary, MedDRA (11.1)
-
-
-
-
-
-
-
-
-
-
- Open or close this module - Limitations and Caveats -
- - - - - - - - - - - - -
-
[Not specified]
-
-
-
-
-
-
-
-
-
- Open or close this module - More Information -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Certain Agreements:
-
Principal - Investigators are NOT employed by the organization sponsoring the study.

There IS - an agreement between the Principal Investigator and the Sponsor (or its agents) that restricts - the PI's rights to discuss or publish trial results after the trial is completed. -

Investigator may publish the study - results, relative to his/her own patients, only after review, comment and approval by the - sponsor. No publication of confidential information shall be made without the sponsor's - prior written consent. At least 60 days prior to submitting a manuscript or prior to any - public presentation, a copy of the manuscript or presentation will be provided to the - sponsor for review and comment. The sponsor has 60 days to review and comment.
-
-
-
Results Point of Contact: -
-
-
Name/Official Title:
-
Roger Mills, MD
-
Organization:
-
ACADIA Pharmaceuticals Inc.
-
Phone:
-
858-202-7563
-
Email:
-
rmills@acadia-pharm.com
-
-
-
-
-
-
-
Scroll up to access the controls - Scroll to the Study top -
-
-
U.S. National Library of - Medicine | U.S. National - Institutes of Health | U.S. Department of Health & Human Services
- - - - - - \ No newline at end of file diff --git a/Parser/NCT01303796.html b/Parser/NCT01303796.html deleted file mode 100644 index dc1fec8..0000000 --- a/Parser/NCT01303796.html +++ /dev/null @@ -1,2028 +0,0 @@ - - - - - - History of Changes for Study: NCT01303796 - - - - - - - - - - -
ClinicalTrials.gov -
-
-
-
History of Changes for Study: - NCT01303796
-
A Study of Oral Sapacitabine in - Elderly Patients With Newly Diagnosed Acute Myeloid Leukemia (SEAMLESS)
-
Latest version (submitted October 28, 2018) on - ClinicalTrials.gov
-
-
-
-
-
-
    -
  • A study version is represented by a row in the table.
  • -
  • Select two study versions to compare. One each from columns A and B.
  • -
  • Choose either the "Merged" or "Side-by-Side" comparison format to specify how the - two study versions are to be displayed. The Side-by-Side format only applies to the Protocol section of - the study.
  • -
  • Click "Compare" to do the comparison and show the differences.
  • -
  • Select a version's Submitted Date link to see a rendering of the study for that version.
  • -
  • The yellow A/B choices in the table indicate the - study versions currently compared below. A yellow - table row indicates the study version currently being viewed.
  • -
  • Hover over the "Recruitment Status" to see how the - study's recruitment status changed.
  • -
  • Study edits or deletions are displayed in red.
  • -
  • Study additions are displayed in green.
  • -
-
-
-
-
-
-
- Study Record Versions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionAB - Submitted DateChanges
1 - February - 24, 2011 - None (earliest Version on record) -
2 - - March 23, - 2011 - Contacts/Locations and Study Status
3 - - April 11, - 2011 - Contacts/Locations and Study Status
4 - - November - 7, 2011 - Sponsor/Collaborators, Study Status, - Contacts/Locations and Oversight
5 - - May 2, 2012 - Study Status, Outcome Measures, Arms and - Interventions, Study Description, Contacts/Locations and Study Design
6 - - May 3, 2012 - Contacts/Locations and Study Status
7 - - May 4, 2012 - Contacts/Locations and Study Status
8 - - May 7, 2012 - Contacts/Locations and Study Status
9 - - May 14, - 2012 - Contacts/Locations and Study Status
10 - - July 11, - 2012 - Contacts/Locations and Study Status
11 - - September 25, 2012 - Study Status and Contacts/Locations
12 - - December 14, 2012 - Contacts/Locations and Study Status
13 - - November 14, 2013 - Contacts/Locations and Study Status
14 - - February 10, 2014 - Contacts/Locations and Study Status
15 - - March 25, - 2014 - Contacts/Locations and Study Status
16 - - September 8, 2014 - Contacts/Locations and Study Status
17 - - April 13, - 2015 - Recruitment Status, Study Status and - Contacts/Locations
18 - - August - 17, 2015 - Contacts/Locations and Study Status
19 - - October - 18, 2018 - Recruitment Status, Study Status, Arms and - Interventions, Outcome Measures, Contacts/Locations, Study Design, Study Description, Oversight, - IPDSharing, References and Eligibility
20 - October - 28, 2018 - Arms and Interventions and Study - Status
-
- Show
- -
-
Results Submission Events
-
-
- -
- Comparison Format: -
    -
  • -
  • -
-
-
-
-
-
-
-
-
-
- -
-
Scroll up to access the controls
-
-
- Changes (Merged) for Study: NCT01303796
- February 24, 2011 (v1) -- October 28, 2018 (v20)

Changes in: Study Status, Sponsor/Collaborators, Oversight, Study Description, Study - Design, Arms and Interventions, Outcome Measures, Eligibility, Contacts/Locations, IPDSharing, References - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- Open or close this module - Study Identification -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Unique Protocol ID:CYC682-12
Brief Title:A Study of Oral Sapacitabine in Elderly Patients With Newly Diagnosed Acute Myeloid Leukemia - (SEAMLESS)
Official Title:A Phase III Randomized Study of Oral Sapacitabine in Elderly Patients With Newly Diagnosed - Acute Myeloid Leukemia
Secondary IDs:
-
-
-
-
-
-
-
-
- Open or close this module - Study Status -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Record Verification:February 2011 October 2018 -
Overall Status:Recruiting Completed
Study Start:January 2011 October 1, - 2011
Primary Completion:September 2013 [Anticipated] December 15, 2016 [Actual]
Study Completion:March 2014 [Anticipated] July 31, - 2017 [Actual]
First Submitted:February 21, 2011
First Submitted that
Met QC Criteria:
February 24, 2011
First Posted:February 25, 2011 [Estimate]
Last Update Submitted that
Met QC Criteria: -
February 24, 2011 October 28, - 2018
Last Update Posted:February 25, 2011 [Estimate] October 31, 2018 [Actual]
-
-
-
-
-
-
-
-
- Open or close this module - Sponsor/Collaborators -
- - - - - - - - - - - - - - - - - - - - -
Sponsor:Cyclacel Pharmaceuticals, Inc.
Responsible Party: Sponsor
Collaborators:
-
-
-
-
-
-
-
-
- Open or close this module - Oversight -
- - - - - - - - - - - - - - - - - - - - - -
U.S. FDA-regulated Drug: Yes
U.S. FDA-regulated Device: No
Data Monitoring: Yes
-
-
-
-
-
-
-
-
- Open or close this module - Study Description -
- - - - - - - - - - - - - - - - - -
Brief Summary:This Phase 3 study assesses three two drug regimens as the initial treatment of patients who are at - least 70 years of age and have newly diagnosed acute myeloid leukemia (AML) for whom the - doctor does not recommend the use of standard intensive treatment or the patient has decided - not to receive standard intensive treatment after being fully informed about its benefits and - risks by his/her doctor. The three two drug regimens are sapacitabine administered in alternating - cycles with decitabine, sapacitabine alone or decitabine - or decitabine alone. The purpose of the study is to learn - which drug regimen is more likely to keep AML in check as long as possible.
Detailed Description:This is a multicenter, randomized, Phase 3 study ("SEAMLESS") comparing three - two drug regimens (arms) as the front-line treatment - of elderly patients aged 70 years or older with newly diagnosed acute myeloid leukemia (AML) - who are not candidates for intensive induction chemotherapy. In Arm A, sapacitabine is - administered in alternating cycles with decitabine, in Arm B - sapacitabine is administered alone and in Arm C decitabine is administered alone. - The primary efficacy endpoint is overall survival. The study is designed to demonstrate an - improvement in overall survival of either of two pairwise - comparisons: (1) Arm A versus Arm C or (2) Arm B versus - Arm C.
-
-
-
-
-
-
-
-
- Open or close this module - Conditions -
- - - - - - - - - - - - - - - - - -
Conditions:Acute Myeloid Leukemia
Keywords:AML
-
-
-
-
-
-
-
-
- Open or close this module - Study Design -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Study Type:Interventional
Primary Purpose:Treatment
Study Phase:Phase 3
Interventional Study Model:Parallel Assignment
Number of Arms:3 2
Masking:None (Open Label)
Allocation:Randomized
Enrollment:470 [Anticipated] 482 - [Actual]
-
-
-
-
-
-
-
-
- Open or close this module - Arms and Interventions -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
ArmsAssigned Interventions
Experimental: Arm A Experimental: Sapacitabine-decitabine alternating -
Sapacitabine and decitabine - Arm A sapacitabine administered in alternating cycles with - decitabine
-
Drug: Sapacitabine and decitabine Drug: Sapacitabine -
Sapacitabine administered in - alternating cycles with decitabine oral - sapacitabine capsules
Drug: - Decitabine -
decitabine intravenous - -
-
Active Comparator: Arm B -
Sapacitabine - -
-
Drug: Sapacitabine -
Sapacitabine alone - -
-
Active Comparator: Arm C Decitabine -
Arm C Decitabine
-
Drug: Decitabine
Decitabine - alone decitabine intravenous
-
-
-
-
-
-
-
-
-
-
- Open or close this module - Outcome Measures -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Primary Outcome Measures:
1.Overall survival
[ Time Frame: up to 39 43 months ]

OS - -
Secondary Outcome Measures:
1.Complete remission with duration
[ Time Frame: Up up to 39 43 months ]

CR with duration - -
2.Complete remission with incomplete platelet count recovery and duration
[ Time Frame: up - to 39 43 months - ]

CRp with duration - -
3.Partial remission with duration
[ Time Frame: up to 39 - 43 months ]

PR with duration - -
4.Hematological improvement with duration
[ Time Frame: up to 39 - 43 months ]

HI with - duration - -
5.Stable disease with duration
[ Time Frame: up to 39 - 43 months ]

SD with duration - -
6.Number of units of blood product transfused
[ Time Frame: up to 39 43 months ]

7.Hospitalized days
[ Time Frame: up to 39 43 months ]

8.1-year survival
[ Time Frame: up to 39 43 months ]

In % - -
-
-
-
-
-
-
-
-
- Open or close this module - Eligibility -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Minimum Age:70 Years
Maximum Age:
Sex:All
Gender Based:
Accepts Healthy Volunteers:No
Criteria: -

Inclusion Criteria:

-
    -
  • Newly diagnosed AML based on WHO (World Health Organization) - classification
  • -
  • Age 70 years or older for whom the treatment of choice is low-intensity therapy by - investigator assessment or who has refused intensive induction therapy recommended by - investigator
  • -
  • ECOG (Eastern Cooperative Oncology Group) performance - status 0-2
  • -
  • Adequate renal function
  • -
  • Adequate liver function
  • -
  • Able to swallow capsules
  • -
  • Agree to practice effective contraception
  • -
  • Ability to understand and willingness to sign the informed consent form
  • -
-

Exclusion Criteria:

-
    -
  • AML is of the sub-type of acute promyelocytic leukemia or extramedullary myeloid tumor - without bone marrow involvement
  • -
  • Having received any systemic anti-cancer therapy for AML or received treatment with - hypomethylating agents or cytotoxic chemotherapy for the - preceding MDS myelodysplastic - syndrome (MDS) or myeloproliferative disease - (MPD)
  • -
  • Known or suspected central nervous system (CNS) involvement by leukemia
  • -
  • Uncontrolled intercurrent illness
  • -
  • Known hypersensitivity to decitabine
  • -
  • Known to be HIV-positive
  • -
-
-
-
-
-
-
-
-
-
- Open or close this module - Contacts/Locations -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Central Contact Person:Judy H Chiao, MD
Telephone: - 908-517-7330
Email: jchiao@cyclacel.com
-
Study Officials: Hagop M Kantarjian, M.D.
Study - Chair
M.D. Anderson Cancer Center
Locations: United States, - Alabama
University of Alabama Comprehensive Cancer Center
Birmingham, Alabama, United States, 35294
United States, - California
Scripps Cancer Center
La Jolla, - California, United States, 92037
UCLA Ronald Reagan Medical Center
Los - Angeles, California, United States, 90095
United States, - Connecticut
Norwalk Hospital
Norwalk, Connecticut, - United States, 06850
United States, - Connecticut
Cancer Center of Central Connecticut
[Recruiting]
Southington, Connecticut, United States, 06489
Contact:Contact: Mark Turney - 860-621-9316
Contact:Principal Investigator: Peter Byeff, MD -
United States, - Florida
Shands Cancer Hospital at University of Florida
Gainesville, Florida, United States, 32608
Cleveland Clinic Florida
Weston, Florida, - United States, 33331
United States, - Georgia
Winship Cancer Institute, Emory University
Atlanta, Georgia, United States, 30322
Blood and Marrow Transplant Group of Georgia
Atlanta, Georgia, United States, 30342
United States, Illinois
The University of Chicago Medical Center
[Recruiting]
Chicago, Illinois, United States, 60637
Contact:Contact: Margaret Green, RN - 773-702-0267
Contact:Principal Investigator: Wendy Stock, MD -
Northwestern Memorial Hospital
Chicago, Illinois, United States, 60611
Rush University Medical Center
Chicago, - Illinois, United States, 60612
The University of Chicago Medical Center
Chicago, Illinois, United States, 60637
United States, - Indiana
St. Francis Medical Group Oncology and Hematology - Specialists
Indianapolis, Indiana, United States, - 46237
United States, Iowa -
University of Iowa Hospitals and Clinics
Iowa City, Iowa, United States, 52242
United States, - Maryland
University of Maryland Greenbaum Cancer Center
Baltimore, Maryland, United States, 21201
United States, - Massachusetts
Beth Israel Deaconess Medical Center
Boston, Massachusetts, United States, 02215
United States, - Michigan
Henry Ford Health System
Detroit, - Michigan, United States, 48202
United States, - Minnesota
Mayo Clinic
Rochester, Minnesota, United - States, 55905
United States, - Missouri
Saint Luke's Cancer Institute
Kansas - City, Missouri, United States, 64111
St. Louis University Cancer Center
Saint - Louis, Missouri, United States, 63110
United States, - Nebraska
University of Nebraska Medical Center
Omaha, Nebraska, United States, 68198
United States, New - Hampshire
Dartmouth - Hitchcock Medical Center
Lebanon, New Hampshire, United States, 03756
United States, New - Jersey
John Theurer Cancer Center at the Hackensack University Medical - Center
Hackensack, New Jersey, United States, 07601
-
United States, New - York
Westchester Hematology Oncology Group, PC
Hawthorne, New York, United States, 10532
Beth Israel Medical Center
New York, New - York, United States, 10003
Memorial Sloan Kettering Cancer Center
New York, New York, United States, 10065
Stony Brook University Medical Center
Stony Brook, New York, United States, 11794
United States, North - Carolina
Duke University Medical Center
Durham, - North Carolina, United States, 27710
United States, Ohio -
Gabrail Cancer Center Research
Canton, - Ohio, United States, 44718
University of Cincinnati
Cincinnati, - Ohio, United States, 45267
Cleveland Clinic Foundation
Cleveland, - Ohio, United States, 44195
United States, - Pennsylvania
Penn State Milton S. Hershey Medical Center
Hershey, Pennsylvania, United States, 17033
Abramson Cancer Center of the University of Pennsylvania
Philadelphia, Pennsylvania, United States, 19104
United States, South - Carolina
Saint Francis Hospital
Greenville, South - Carolina, United States, 29601
United States, - Tennessee
Vanderbilt University Medical Center
Nashville, Tennessee, United States, 37232
United States, Texas -
Baylor University Medical Center
Dallas, - Texas, United States, 75246
United States, Texas -
MD Anderson Cancer Center
[Recruiting]
Houston, Texas, United States, 77030-3387
Contact:Contact: Patricia Boone, RN - 713-792-9191
Contact:Principal Investigator: Hagop Kantarjian, MD -
MD Anderson Cancer Center
Houston, Texas, United States, 77030-3387
Joe Arrington Cancer Research and Treatment Center
Lubbock, Texas, United States, 79410
United States, Utah -
Huntsman Cancer Institute at the University of Utah
Salt Lake City, Utah, United States, 84112
United States, - Wisconsin
The Medical College of Wisconsin
Milwaukee, Wisconsin, United States, 53226
Austria
Medizinische Universitaetsklinik
Innsbruck, Austria
Elisabethinen Krankenhaus
Linz, - Austria
Krankenhaus der Barmherzigen Schwestern
Linz, Austria
Univ. Klinik fur Innere Medizin III LKH
Salzburg, Austria
Klinikum Wels-Grieskirchen GmbH
Wels, - Austria
AKH Wien
Wien, Austria
Hanusch Krankenhaus
Wien, - Austria
Belgium
Ziekenhuis Netwerk Antwerpen Stuivenberg
Antwerpen, Belgium
AZ Sint-Jan Brugge-Oostende
Brugge, - Belgium
Universite Catholique de Louvain
Brussels, Belgium
Centre Hospitalier De Jolimont-Lobbes
La - Louviere, Belgium
Cliniques Universitaires UCL de Mont-Godinne
Yvoir, Belgium
France
CHU d'Amiens Hopital Sud
Amiens, - France
Centre Hospitalier de la Cote Basque
Bayonne, France
CHU de Lyon - Hopital Edouard Herriot
Lyon, France
Institut Paoli Calmettes
Marseille, - France
CHRU De Montpellier Hopital St. Eloi
Montpellier, France
Centre Hospitalier De Mulhouse
Mulhouse, - France
Hopital St Louis Universite Paris 7
Paris, France
Centre Hospitalier de Perigueux
Perigueux, France
Centre Hospitalier d'Annecy
Pringy, - France
Centre Hospitalier de Saint-Brieuc Yves Ie Foll
St Brieuc, France
CHU de Strasbourg - Hopital Civil
Strasbourg, France
Strasbourg Oncologie Liberale
Strasbourg, - France
CHU de Tours Hopital Bretonneau
Tours, - France
Germany
Universitaetsklinikum Charite Berlin, Campus Benjamin - Franklin
Berlin, Germany
Universitaetsklinikum Carl-Gustav-Carus Dresden
Dresden, Germany
St. Johannes Hospital
Duisburg, - Germany
Klinikum Frankfurt Hoechst
Frankfurt, - Germany
Asklepios Klinik Altona
Hamburg, - Germany
Medizinische Hochschule Hannover
Hannover, Germany
SLK Kliniken Heilbronn
Heilbronn, - Germany
Klinikum St. Georg
Leipzig, - Germany
Johannes Wesling Klinikum
Minden, - Germany
TU Muenchen
Muenchen, - Germany
Universitaetsklinikum Muenster
Muenster, - Germany
Hungary
University of Debrecen
Debrecen, - Hungary
Petz Aladar Megyei Oktato Korhaz
Győr, - Hungary
Kaposi Mor Oktato Korhaz
Kaposvár, - Hungary
Italy
AOU Ospedali Riuniti Umberto I
Ancona, - Italy
AO Ospedali Riuniti di Bergamo
Bergamo, - Italy
Universita di Bologna Ist Ematologia Oncologia Medica - Seragnoli
Bologna, Italy
AO Spedali Civili di Brescia
Brescia, - Italy
Universita Cattolica del Sacro Cuore
Campobasso, Italy
AOU Careggi
Firenze, Italy
-
AOU San Martino IST
Genova, - Italy
PO Vito Fazzi
Lecce, Italy
-
Ospedale San Raffaele
Milano, - Italy
AORN Antonio Cardarelli
Napoli, - Italy
Uni. Napoli Ospedale Federico lI
Napoli, - Italy
AOU Maggiore della Carità di Novara
Novara, Italy
AOOR Villa Sofia Cervello di Palermo
Palermo, Italy
Policlinico San Matteo Di Pavia
Pavia, - Italy
AOU San Luigi Gonzaga
Torino, - Italy
Poland
Akademickie Centrum Kliniczne Szpital Akademii Medycznej w - Gdansku
Gdansk, Poland
Wojewodzki Szpital Specjalistyczny
Legnica, Poland
Wojewódzki Szpital Specjalistyczny w Legnicy
Legnica, Poland
University of Lodz N. Copernicus Memorial Hospital
Lodz, Poland
IHT Instytut Hematologii I Transfuzjologii w Warszawie
Warsaw, Poland
Samodzielny Publiczny Szpital Kliniczny Nr 1 w Wroclawiu
Wroclaw, Poland
Spain
Hospital Universitari Germans Trias i Pujol ICO Badalona
Badalona, Spain
Hospital Clinic de Barcelona
Barcelona, - Spain
Hospital De La Santa Creu Sant Pau
Barcelona, Spain
Hospital Universitario Vall d'Hebron
Barcelona, Spain
Hospital Universitario de Canarias
La - Laguna, Spain
Hospital Universitario Ramon y Cajal
Madrid, Spain
MD Anderson Cancer Center
Madrid, - Spain
Hospital Son Llatzer
Palma de Mallorca, - Spain
Hospital Universitari Son Espases
Palma - de Mallorca, Spain
Clínica Universidad de Navarra
Pamplona, - Spain
Complejo Hospitalario de Navarra
Pamplona, Spain
Hospital Clinico Universitario de Salamanca
Salamanca, Spain
Hospital Clinico Universitario
Santiago - de Compostela, Spain
Hospital Universitario Virgen del Rocio
Sevilla, Spain
Hospital Universitari "La Fe"
Valencia, - Spain
Sweden
Sunderby Hospital
Luleå, - Sweden
Skåne Universitetssjukhus Univ Hospital Lund
Lund, Sweden
Switzerland
Inselspital Bern
Bern, - Switzerland
United Kingdom
Kings College Hospital and Guys and St Thomas' Hospital
London, United Kingdom
-
-
-
-
-
-
-
-
- Open or close this module - IPDSharing -
- - - - - - - - - - - - - -
Plan to Share IPD: No
-
-
-
-
-
-
-
-
- Open or close this module - References -
- - - - - - - - - - - - - - - - - - - - - -
Citations: [Study Results] Kantarjian, - H.M.; Begna, K.H.; Altman, J.K.; Goldberg, S.L.; Sekeres, M.A.; Strickland, S.A.; - Rubenstein, S.E.; Arellano, M.L.; Claxton, D.F.; Baer, M.R.; et al. Results of a Phase 3 - Study of Elderly Patients with Newly Diagnosed AML Treated with Sapacitabine and Decitabine - Administered in Alternating Cycles. Blood 2017, vol. 130 no. Suppl 1 891. - http://www.bloodjournal.org/content/130/Suppl_1/891.
Links:
Available IPD/Information:
-
-
-
-
-
-
-
Scroll up to access the controls - Scroll to the Study top -
-
-
U.S. National Library of - Medicine | U.S. National - Institutes of Health | U.S. Department of Health & Human Services
- - - - - - \ No newline at end of file diff --git a/containers/AACT_downloader/docker-compose.yaml b/containers/AACT_downloader/docker-compose.yaml index ae44db9..8e57a2a 100644 --- a/containers/AACT_downloader/docker-compose.yaml +++ b/containers/AACT_downloader/docker-compose.yaml @@ -8,6 +8,8 @@ services: image: postgres:14-alpine networks: - pharmaceutical_research + shm_size: '4gb' #adjust the shared memeory /dev/shm when running + #https://stackoverflow.com/questions/30210362/how-to-increase-the-size-of-the-dev-shm-in-docker-container container_name: aact_db #restart: always #restart after crashes environment: diff --git a/containers/AACT_downloader/docker-entrypoint-initdb.d/050_RxNormMigrated_Schema.sql b/containers/AACT_downloader/docker-entrypoint-initdb.d/050_RxNormMigrated_Schema.sql new file mode 100644 index 0000000..b644be7 --- /dev/null +++ b/containers/AACT_downloader/docker-entrypoint-initdb.d/050_RxNormMigrated_Schema.sql @@ -0,0 +1,6 @@ +-- Create a schema handling trial history. +CREATE SCHEMA rxnorm_migrated; + +--Create role for anyone who needs to both select and insert on historical data + +GRANT ALL ON ALL TABLES IN SCHEMA rxnorm_migrated TO root; diff --git a/containers/AACT_downloader/docker-entrypoint-initdb.d/999_ntfy.sh b/containers/AACT_downloader/docker-entrypoint-initdb.d/999_ntfy.sh new file mode 100644 index 0000000..1e4e7e5 --- /dev/null +++ b/containers/AACT_downloader/docker-entrypoint-initdb.d/999_ntfy.sh @@ -0,0 +1,2 @@ +#!/bin/bash +wget --post-data="postgres complete:$(date)" -qO- https://ntfy.sh/$NTFY > /dev/null diff --git a/containers/RxNav-In-a-box/rxnav-in-a-box-20230103/mysql/999_ntfy.sh b/containers/RxNav-In-a-box/rxnav-in-a-box-20230103/mysql/999_ntfy.sh new file mode 100644 index 0000000..5563c2c --- /dev/null +++ b/containers/RxNav-In-a-box/rxnav-in-a-box-20230103/mysql/999_ntfy.sh @@ -0,0 +1,6 @@ +#!/bin/bash +#install wget +apt update +apt install -y wget +#send notification +wget --post-data="mariadb complete:$(date)" -qO- https://ntfy.sh/$NTFY > /dev/null diff --git a/containers/docker-compose.yaml b/containers/docker-compose.yaml index d878c12..36e5f14 100644 --- a/containers/docker-compose.yaml +++ b/containers/docker-compose.yaml @@ -26,6 +26,7 @@ services: - ./AACT_downloader/aact_downloads/postgres_data.dmp:/mnt/host_data/postgres_data.dmp # this is the folder containing entrypoint info. - ./AACT_downloader/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d/ + shm-size: 1g rxnav-db: diff --git a/data-graph b/data-graph deleted file mode 100644 index 74109c8..0000000 --- a/data-graph +++ /dev/null @@ -1 +0,0 @@ -7Vxtb6M4EP41kfY+JOI1Lx/z0t5VykZVu7fX/XRywBBvASPjbJP99TcmJoSatLQJobeLVDV4MI49z3jm8dikY07DzZ8MxavP1MVBx9DcTcecdQxDH9kGfAjJdicZGvZO4DPiykq54J78xFKoSemauDgpVOSUBpzERaFDowg7vCBDjNGnYjWPBsVvjZGPFcG9gwJV+g9x+UqOwtZy+V+Y+Kvsm3VN3glRVlkKkhVy6dOByLzqmFNGKd9dhZspDoTyMr3snrs+cnffMYYjXuUBdGMFnuZynkxCf+V9vXPQ9661a+UHCtZywNOARATG/4URFCQ9n/6Q3efbTCfJEwkDFEFp4tGI38s7GpSdFQncOdrStehTwpHzmJUmK8rIT6iPArilgwBuMy4hN7VCjXvxpGyT4QTq3GYD1Z+JPqNNoeIcJTzrDQ0CFCdkmfZPPBgi5pNoQjmnoawUoCUOJvB1PqPryJ3SgDK4FdHdAEkQZKKOYboIDz0n7Tujj/jgTt8Z4qUHd6RGMeN4cxQqfW8AMHMwDTFnW6iSPSBNRs4ZPbO2p9wCdUvKVofWl1VE0ur9fdO5YcCFtI032Imt2Mli+uVmppgGjJkr2ilRpRShgPgRFAPsiceE0oTtjaU4JK4rWp4kMXJI5M/TajMrl9zJwQsRhce9IJ1iK3gQQwuTmJKIp8qwJ/AH6plqPbtjQ1+nUNbzMvyJ6oxPaQTdRySFCoMxPWFhUBNGOeJouTf1Sjgfn3Qq+BJtsyLYZl1Y9xWsbyIXYOGERtUAFxOlv+zbfXUCeZ5nOE4LfSn0/aahHyjQOzSMhVtMWuTrRH7UNPKWqUB/FTGIn6EYlqHdRxBIV5RXt4Pl0LZsrcQOhg5u7eCIHehG04YwVOzgnrO1w9cMuyC/ZdSFElzNBW9SzaElhzWTQ9soskOzeXY4Um3mqmWH73QQw4/NDrNxHC4FZmNoapx+aC3sdcDeODPMlqSHmQJJDVu8z49343xQV6f54SpQ64pkGsPYoywUOTkBeWsHZ7eD5vmgbiiGMCMJqAKDcLJmQrUtB7wwB+wOihzQrsoBR7WZibp+nI3n39LM/FrMOuOaIY7b5eOJ7mI3HT8uPdTVHQXyxuxhGyHeBHnz1FBNGC9m0+797bw7AxV0r+ZYJJGSnpO0e0mNpwvKQoWhldjLfhfq/AajpplvOBY0ckpd3DqJdzmJ/lvjQino9TkJNa8ITgIE2UKjBfysgJdEhcsCbqnrhs+IPWIOChczHcigT+X3tOCfF/yS7MGFwVezB+M4DvL0wWIdLjGDi0958vCP1hZqsIWyDMKFjUFNHR56glm7LKzfCKqSvvriv7pHdMtozAgG4i56ukBhS/1qwX7YNPaGSgXuNos0cdyuBi+7GrS04mqwar6otryhoeYNYcY4OBZHDMReovbp7mH6982sZQfvcg7GB88XGiUnkPf7ilrUBoV6cG88aWioOaBdTPg3RHEMWk96vGRLsQ0QNQeI/rMAoVf1EPt1xvlNRU0dPQ8RbOOsiduGiPe5isEHDxElx8swb88Z1YJ244Eha1jdHDBbwGsAvPGTRqa6AYBdH2ehHXS0oj6NUHCVSydpvMSuVE5eZ05pLOPtd8z5VoZ4tOZUBHkeZgQAdMa2D4eFb6IxQEcWZ1lo35W2BRxEB18OsDAeumYOrhDXgIr4+EUEzXIEGQ4QJz+KPTk/Pkaj+GjN4TOqiM+oUXjU3XfwKR5hoTivXwJcem6/qOzMMTqgI8xeco0pzz1wS0WPN3vJUck3dOXDnf17sa86MPPIUkY2r/W0wcAqktZdqTIAsu1bMZiDKtTzEswVhPZdOAE0NZb9HnOqX3FK6Udek3kbpGPG0PaggrRWFfHsWJ3+bPVjyLfVc/h3TZ7XGEqOQwgdrUj0mH5iJs5aovR/iJOVEGIWJuKTwr8gq0iS3i8y5Y9EvAwnrWcNsj3GbJly2pzfW4BZ9CRZ+QI+Yfib+oRBVRp0qk84Lc6qq9Dqs3SFhI2FKZv+JefrkVPs+xBt6HZhXnU/fIi21MT04u66O/vSMSCImbpQ7QKWf6l2RJeoJ8azicS+lnmt4NpmLuv+0YxRMXbburqyLd337Ne1srVUai5AlabiIi5chXiRxmU0jtPXa5diQF/H6cyIA+TkwkR0CpyNjwPx6sXeBhVDa5MiVd7CfvNvcFz4zMzgNyUDGat7nQ0c8QaXYQNWw2StZwz7hxjpryCUlm4xIzB8QR92wg3hDwfXB2BDKW9JFBqFulHiZ6nEryy+/y95m/Uab9NG2qhI3E5cZ51C3MQ7ZPufS9tVz390zrz6Dw== \ No newline at end of file diff --git a/development_sql/.project b/development_sql/.project new file mode 100644 index 0000000..e4f5aba --- /dev/null +++ b/development_sql/.project @@ -0,0 +1,11 @@ + + + development_sql + + + + + + + + diff --git a/RxNav/ASSOICATING NCTIDs to NDCs and Marketing dates.sql b/development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql similarity index 100% rename from RxNav/ASSOICATING NCTIDs to NDCs and Marketing dates.sql rename to development_sql/ASSOICATING NCTIDs to NDCs and Marketing dates.sql diff --git a/RxNav/views to history.sql b/development_sql/views to history.sql similarity index 100% rename from RxNav/views to history.sql rename to development_sql/views to history.sql diff --git a/history_downloader/db_connection.py b/history_downloader/db_connection.py deleted file mode 100644 index 7a95b03..0000000 --- a/history_downloader/db_connection.py +++ /dev/null @@ -1,15 +0,0 @@ -# Description -# This program tests the ability to connect the the DB -# - -import psycopg2 as psyco - -conn = psyco.connect(dbname="aact_db", user="root", host="localhost", password="root") - -curse = conn.cursor() - -curse.execute("select nct_id FROM ctgov.studies LIMIT 10;") -print(curse.fetchall()) - -curse.close() -conn.close() diff --git a/history_downloader/readme.md b/history_downloader/readme.md deleted file mode 100644 index e4c5321..0000000 --- a/history_downloader/readme.md +++ /dev/null @@ -1,20 +0,0 @@ -# File descriptions - -db_connection.py -- is just a test file -- [ ] TODO: should be incorporated in a tests justfile recipe. maybe moved to a test location? - - -downloader_prep.sql -- contains sql to identify which trials are of interest. -- [ ] TODO: add into the automation routine somewhere. - -downloader.py -- does the actual downloading -- setup to also act as a python module if needed. -- [ ] TODO: there are quite a few things that need cleaned or refactored. - -./tests/download_tests.py -- downloads some test html values from clinicaltrials.gov - - diff --git a/history_downloader/select_trials.py b/history_downloader/select_trials.py deleted file mode 100644 index 5c2713a..0000000 --- a/history_downloader/select_trials.py +++ /dev/null @@ -1,19 +0,0 @@ -import downloader as dldr - - - - -if __name__ == "__main__": - - dbc = dldr.DBConnectionCreator( - dbname="aact_db" - ,user="root" - ,host="will-office" - ,port=5432 - ,password="root") - - with open('selected_trials.sql','r') as fh: - sqlfile = fh.read() - with dbc.new() as connection: - with connection.cursor() as curse: - curse.execute(sqlfile) diff --git a/market_data/download.sh b/market_data/download.sh deleted file mode 100644 index a3cbda8..0000000 --- a/market_data/download.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e - -download_and_unzip () { - - curl "$1" > out.zip - unzip ./out.zip - rm ./out.zip -} - -#date on market data -download_and_unzip "https://download.open.fda.gov/other/nsde/other-nsde-0001-of-0003.json.zip" -download_and_unzip "https://download.open.fda.gov/other/nsde/other-nsde-0002-of-0003.json.zip" -download_and_unzip "https://download.open.fda.gov/other/nsde/other-nsde-0003-of-0003.json.zip" - -#rxnorm data -download_and_unzip "https://dailymed-data.nlm.nih.gov/public-release-files/rxnorm_mappings.zip" diff --git a/market_data/migrate_rxnav.py b/market_data/migrate_rxnav.py deleted file mode 100644 index 1a580db..0000000 --- a/market_data/migrate_rxnav.py +++ /dev/null @@ -1,95 +0,0 @@ -import connetorx as cx -from sqlalchemy import create_engine -import re - -####################CONSTANTS################################# -MYSQL_CONNECTION_STRING="mysql://webuser:9521354c77aa@localhost/" -POSTGRES_CONNECTION_STRING="postgresql://root:root@localhost/aact_db" -POSTGRES_ENGINE = create_engine(POSTGRES_CONNECTION_STRING) -SPLIT_RE = re.compile("(\w+)(\((\d+)\))?") - - -###################QUERIES######################### - -QUERY_columns_from_Information_Schema = """ -SELECT * -FROM INFORMATION_SCHEMA.columns -WHERE - TABLE_SCHEMA="rxnorm_current" -""" - -QUERY_data_from_table = "" - - -########FUNCTIONS################# -def query_mysql(query): - """ - runs a query against the MYSQL database, returning a pandas df - """ - return cx.read_sql(MYSQL_CONNECTION_STRING, query) - -def insert_table_postgres(df, table, schema): - """ - Inserts data into a table - """ - return df.to_sql( - table - ,POSTGRES_ENGINE - ,schema=schema - ,if_exists="append" - ,method="multi" - ) - - - -def convert_mysql_types_to_pgsql(binary_type): - """ - Given a binary string of a column's type, - convert to utf8, and then parse it into - a postgres type - """ - string_type = binary_type.decode("utf-8").lower() - - #get the value name and length out. - val_type,_,length = SPLIT_RE.match(string_type).groups() - -def convert_column(df_row): - #extract - position = df_row.ORDINAL_POSITION - table_name = df_row.TABLE_NAME - - #convert - if data_type=="varchar": - string = "{column_name} character varying({data_length}) COLLATE pg_catalog.\"default\" {is_nullable},".format( - column_name = df_row.COLUMN_NAME - ,data_length = np.int64(df_row.CHARACTER_MAXIMUM_LENGTH) - ,is_nullable = "NOT NULL" if df_row.IS_NULLABLE == "NO" else "" - ) - elif data_type=="char": - string = "{column_name} char({data_length})[] COLLATE pg_catalog.\"default\" {is_nullable},".format( - column_name = df_row.COLUMN_NAME - ,data_length = np.int64(df_row.CHARACTER_MAXIMUM_LENGTH) - ,is_nullable = "NOT NULL" if df_row.IS_NULLABLE == "NO" else "" - ) - elif data_type=="tinyint": - string = "{column_name} smallint {is_nullable},".format( - column_name = df_row.COLUMN_NAME - ,is_nullable = "NOT NULL" if df_row.IS_NULLABLE == "NO" else "" - ) - series_type = numpy.int8 - elif data_type=="decimal": - string = "{column_name} numeric({precision},{scale}) {is_nullable},".format( - column_name = df_row.COLUMN_NAME - ,is_nullable = "NOT NULL" if df_row.IS_NULLABLE == "NO" else "" - ,precision= np.int64(df_row.NUMERIC_PRECISION) - ,scale= np.int64(df_row.NUMERIC_SCALE) - ) - elif data_type=="int": - pass - elif data_type=="enum": - pass - elif data_type=="text": - pass - - return string - diff --git a/market_data/readme.md b/market_data/readme.md deleted file mode 100644 index c009a81..0000000 --- a/market_data/readme.md +++ /dev/null @@ -1 +0,0 @@ -downloads and extracts nsde data. diff --git a/scripts/db_connection_test.py b/scripts/db_connection_test.py new file mode 100644 index 0000000..e079755 --- /dev/null +++ b/scripts/db_connection_test.py @@ -0,0 +1,11 @@ +from drugtools.env_setup import postgres_conn, mariadb_conn, ENV + +print(ENV) + +with postgres_conn() as pconn, pconn.cursor() as curse: + curse.execute("select nct_id FROM ctgov.studies LIMIT 10;") + print(curse.fetchall()) + +with mariadb_conn() as mconn, mconn.cursor() as mcurse: + mcurse.execute("select * FROM ALLNDC_HISTORY LIMIT 10;") + print(mcurse.fetchall()) diff --git a/history_downloader/download_tests.py b/scripts/download_tests.py similarity index 61% rename from history_downloader/download_tests.py rename to scripts/download_tests.py index c6966da..8a84ea5 100644 --- a/history_downloader/download_tests.py +++ b/scripts/download_tests.py @@ -1,9 +1,7 @@ -import downloader as download +from drugtools.historical_nct_downloader import make_request, get_highest_version_number, step_generator + +#this uses the history downloader script to test downloads -def print_response_to_file(r): - pass -def pretty_print_response(r): - pass def trial_downloads(nct_id): """ @@ -11,25 +9,25 @@ def trial_downloads(nct_id): Instead it writes to files """ print("downloading {}".format(nct_id)) - r = download.make_request(nct_id,1,2) + r = make_request(nct_id,1,2) responses = [ r ] print(r.url) - v = download.get_highest_version_number(r) + v = get_highest_version_number(r) if v == 2: pass elif v%2 == 0: - for version_a, version_b in download.step_generator(v): + for version_a, version_b in step_generator(v): print("\t versions {} & {}".format(version_a,version_b)) - req = download.make_request(nct_id,version_a,version_b) + req = make_request(nct_id,version_a,version_b) responses.append(req) elif v %2 == 1: - for version_a, version_b in download.step_generator(v): + for version_a, version_b in step_generator(v): print("\t downloading versions {} & {}".format(version_a,version_b)) - req = download.make_request(nct_id,version_a,version_b) + req = make_request(nct_id,version_a,version_b) responses.append(req) - responses.append(download.make_request(nct_id,1,v)) + responses.append(make_request(nct_id,1,v)) print("\tDownloaded {} versions".format(v)) diff --git a/scripts/drugtools/__init__.py b/scripts/drugtools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/market_data/extract_nsde.py b/scripts/drugtools/download_and_extract_nsde.py similarity index 68% rename from market_data/extract_nsde.py rename to scripts/drugtools/download_and_extract_nsde.py index d2c9863..539a53b 100644 --- a/market_data/extract_nsde.py +++ b/scripts/drugtools/download_and_extract_nsde.py @@ -1,11 +1,17 @@ import json -import psycopg2 as psyco from psycopg2.extras import execute_values import datetime as dt +from drugtools.env_setup import postgres_conn, ENV +import requests +import zipfile +import io -def file_generator(max_num): +URL_STEM = 'https://download.open.fda.gov/other/nsde/' +NUMBER_OF_NSDE_FILES = int(ENV["NUMBER_OF_NSDE_FILES"]) + +def filename_generator(max_num): for itt in range(1,max_num+1): - filename = "other-nsde-{:0>4}-of-{:0>4}.json".format(itt,max_num) + filename = "other-nsde-{:0>4}-of-{:0>4}.json.zip".format(itt,max_num) yield filename def get_date(result,key): @@ -45,18 +51,22 @@ def build_values(result): ,reactivation_date ) +def download_and_extract_zip(base_url,filename): + response = requests.get(base_url + filename) -if __name__ == "__main__": - for x in file_generator(3): + with zipfile.ZipFile(io.BytesIO(response.content)) as the_zip: + contents_list = the_zip.infolist() + for content_name in contents_list: + return the_zip.read(content_name) + +def run(): + for filename in filename_generator(NUMBER_OF_NSDE_FILES): #It would be nice to replace this^^ file_generator with something that retrieves and unzips the files directly. - with ( - psyco.connect(dbname="aact_db", user="root", host="localhost", password="root") as con, - con.cursor() as curse, - open("./"+x,"r") as j - ): - print(x) + with (postgres_conn() as con , con.cursor() as curse): + print(filename) - results = json.loads(j.read())["results"] + j = download_and_extract_zip(URL_STEM, filename) + results = json.loads(j)["results"] query = """ INSERT INTO spl.nsde ( proprietary_name @@ -82,4 +92,5 @@ VALUES %s; - +if __name__ == "__main__": + run() diff --git a/scripts/drugtools/env_setup.py b/scripts/drugtools/env_setup.py new file mode 100644 index 0000000..edf9047 --- /dev/null +++ b/scripts/drugtools/env_setup.py @@ -0,0 +1,30 @@ +import pymysql +import psycopg2 as psyco +from dotenv import dotenv_values + +env_path = "../containers/.env" +ENV = dotenv_values(env_path) + +def mariadb_conn(**kwargs): + return pymysql.connect( + database=ENV["MYSQL_DB"] + ,user=ENV["MYSQL_USER"] + ,host=ENV["MYSQL_HOST"] + ,port=int(ENV["MYSQL_PORT"]) + ,password=ENV["MYSQL_PASSWORD"] + ,**kwargs + ) + +def postgres_conn(**kwargs): + return psyco.connect( + dbname=ENV["POSTGRES_DB"] + ,user=ENV["POSTGRES_USER"] + ,host=ENV["POSTGRES_HOST"] + ,port=ENV["POSTGRES_PORT"] + ,password=ENV["POSTGRES_PASSWORD"] + ,**kwargs + ) + + +def get_tables_of_interest(): + return ENV["TABLES_OF_INTEREST"].split(",") \ No newline at end of file diff --git a/history_downloader/downloader.py b/scripts/drugtools/historical_nct_downloader.py similarity index 77% rename from history_downloader/downloader.py rename to scripts/drugtools/historical_nct_downloader.py index 81d52bc..af3ce3e 100644 --- a/history_downloader/downloader.py +++ b/scripts/drugtools/historical_nct_downloader.py @@ -1,13 +1,17 @@ import requests -import psycopg2 as psyco from datetime import datetime from bs4 import BeautifulSoup -from multiprocessing import Pool, Value +from multiprocess import Pool, Value import math import time -import argparse -from dotenv import dotenv_values +from drugtools.env_setup import postgres_conn, ENV +############ GLOBALS +RESET_TIME = Value('I',int(ENV["TRIAL_DOWNLOAD_RESET_TIME"])) +DELAY_TIME = Value("I",int(ENV["TRIAL_DOWNLOAD_DELAY_TIME"])) +TRIAL_RESERVATION_LIMIT=int(ENV["TRIAL_RESERVATION_LIMIT"]) + +############ Functions def get_highest_version_number(response): """ Navigate to the version table and and extract the highest posted version. @@ -114,7 +118,7 @@ def write_incomplete(cursor, nct_id): """ cursor.execute(query, [nct_id] ) -def download_trial_records(nct_id, db_connection_specs, delay_time, reset_time): +def download_trial_records(nct_id, delay_time, reset_time): """ Manage the download of all records associated with a given trial. It uses a single connection and cursor for downloading the entire trial. @@ -130,7 +134,7 @@ def download_trial_records(nct_id, db_connection_specs, delay_time, reset_time): # A new connection is created every time the function is called so that this # function can be run using a multiprocessing pool - with db_connection_specs.new() as db_conn: + with postgres_conn() as db_conn: with db_conn.cursor() as cursor: #upload the first two versions @@ -164,27 +168,6 @@ def download_trial_records(nct_id, db_connection_specs, delay_time, reset_time): -class DBConnectionCreator(): - """ - Creates new database connections based on a specified set of parameters. - This simplifies connection creation by allowing the programmer to pass - around the preconfigured connection creator. - """ - def __init__(self,dbname, user, host, port, password): - self.dbname = dbname - self.user = user - self.host = host - self.port = port - self.password=password - - def new(self): - return psyco.connect( - dbname=self.dbname - ,user=self.user - ,host=self.host - ,port=self.port - ,password=self.password - ) def step_generator(max_version): """ @@ -222,58 +205,30 @@ def reserve_trials(db_connection, limit=10): return nctids_list -if __name__ == "__main__": - env_path = '' - config = dotenv_values(env_path) - """ - Main! - """ - parser = argparse.ArgumentParser(description="Download historical data") - parser.add_argument( - "-c" - ,"--count" - , dest="count" - , type=int - , default=10 - , help="Specify how many studies to download (default 10). If you want to download all of them, just enter some number higher than the total number of trials selected." - ) - parser.add_argument( - "-H" - ,"--host" - , dest="host" - , default="localhost" - , help="Specify the hostname of the postgres server (Default: localhost)" - ) - args = parser.parse_args() - - - #instantiate a database connnection creator - dbc = DBConnectionCreator( - dbname="aact_db" - ,user="root" - ,host=args.host - ,port=5432 - ,password="root") - +def reserve_and_download_versions(limit): #db connection - with dbc.new() as con: + with postgres_conn() as con: #get list of nct_ids - nctids = reserve_trials(con, args.count) - print(nctids) + nctids = reserve_trials(con, limit) + print("reserving_trials: ", nctids) + - - reset_time = 10 - delay_time = Value("I",1) #lambda that parameterizes the downloader, allowing it to be passed to the pool. def downloader(nct): - download_trial_records(nct, dbc, delay_time, reset_time) + download_trial_records(nct, DELAY_TIME, RESET_TIME) - #start analyzing them + #start analyzing them with Pool(processes=12) as process_pool: process_pool.map(downloader, nctids) +def run(): + reserve_and_download_versions(TRIAL_RESERVATION_LIMIT) - +if __name__ == "__main__": + """ + Main! + """ + run() \ No newline at end of file diff --git a/Parser/extraction_lib.py b/scripts/drugtools/historical_nct_extractor.py similarity index 95% rename from Parser/extraction_lib.py rename to scripts/drugtools/historical_nct_extractor.py index 2e732d3..e3b1abe 100644 --- a/Parser/extraction_lib.py +++ b/scripts/drugtools/historical_nct_extractor.py @@ -1,12 +1,12 @@ from collections import namedtuple from copy import copy from datetime import datetime -import psycopg2 from bs4 import BeautifulSoup -import argparse -#import textprocessing as tp #cuz tp is important +from drugtools.env_setup import ENV,postgres_conn #requires Python 3.10 +#### GLOBALS +VERBOSE = True if ENV["VERBOSE"] == "True" else False ###CLASSES AND CONSTRUCTORS @@ -380,34 +380,9 @@ def get_data_from_versions(nct_id,html, version_a_int, version_b_int): return version_a,version_b -if __name__ == "__main__": - argParser = argparse.ArgumentParser() - - # Adding diagnostic printing - argParser.add_argument( - "-V" - ,"--verbose" - , help="Display a lot of of diagnostic information" - , action='store_true' - ) - - # host - argParser.add_argument( - "--host" - , help="Change hostname" - ) - - args = argParser.parse_args() - VERBOSE = args.verbose - - if args.host: - host=args.host - else: - host="localhost" - - - with psycopg2.connect(dbname="aact_db", user="root", password="root",host=host) as db_connection: +def run(): + with postgres_conn() as db_connection: #pull the requests from the db with db_connection.cursor() as curse: sql = """ @@ -430,6 +405,8 @@ if __name__ == "__main__": version2.load_to_db(db_connection) +if __name__ == "__main__": + run() """ Documentation: diff --git a/scripts/drugtools/historical_trial_selector.py b/scripts/drugtools/historical_trial_selector.py new file mode 100644 index 0000000..3e6c514 --- /dev/null +++ b/scripts/drugtools/historical_trial_selector.py @@ -0,0 +1,15 @@ +from drugtools.env_setup import postgres_conn +from pathlib import Path + + +def run(): + #get relative path + p = Path(__file__).with_name("selected_trials.sql") + with open(p,'r') as fh: + sqlfile = fh.read() + with postgres_conn() as connection: + with connection.cursor() as curse: + curse.execute(sqlfile) + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/RxNav/migrate_mysql2pgsql.py b/scripts/drugtools/migrate_mysql2pgsql.py similarity index 62% rename from RxNav/migrate_mysql2pgsql.py rename to scripts/drugtools/migrate_mysql2pgsql.py index 206fb16..b98d141 100644 --- a/RxNav/migrate_mysql2pgsql.py +++ b/scripts/drugtools/migrate_mysql2pgsql.py @@ -4,6 +4,7 @@ from psycopg2 import extras import pymysql from dotenv import load_dotenv import os +from drugtools.env_setup import postgres_conn, mariadb_conn, get_tables_of_interest ##############NOTE @@ -17,7 +18,10 @@ I will have the ability to reduce memory usage and simplify what I am doing. ''' - +############### GLOBALS +#these are hardcoded so they shouldn't require any updates +mschema="rxnorm_current" +pschema="rxnorm_migrated" ########FUNCTIONS################# @@ -51,46 +55,12 @@ def convert_column(d): return string -if __name__ == "__main__": - #process environment variables - load_dotenv() - POSTGRES_HOST = os.getenv("POSTGRES_HOST") - POSTGRES_DB = os.getenv("POSTGRES_DB") - POSTGRES_USER = os.getenv("POSTGRES_USER") - POSTGRES_PASSWD = os.getenv("POSTGRES_PASSWD") - POSTGRES_PORT = int(os.getenv("POSTGRES_PORT")) - - MARIADB_HOST = os.getenv("MARIADB_HOST") - MARIADB_DB = os.getenv("MARIADB_DB") - MARIADB_USER = os.getenv("MARIADB_USER") - MARIADB_PASSWD = os.getenv("MARIADB_PASSWD") - MARIADB_PORT = int(os.getenv("MARIADB_PORT")) - +def run(): #get & convert datatypes for each table of interest - tables_of_interest = [ - "rxnorm_props" - ,"rxnorm_relations" - ,"ALLNDC_HISTORY" - ,"ALLRXCUI_HISTORY" - ] - mschema="rxnorm_current" - pschema="rxnorm_migrated" - - - with pymysql.connect( - user=MARIADB_USER - ,password=MARIADB_PASSWD - ,host=MARIADB_HOST - ,port=MARIADB_PORT - ,database=MARIADB_DB - ,cursorclass=pymysql.cursors.DictCursor - ) as mcon, psyco.connect( - user=POSTGRES_USER - ,password=POSTGRES_PASSWD - ,host=POSTGRES_HOST - ,port=POSTGRES_PORT - ,database=POSTGRES_DB - ) as pcon: + tables_of_interest = get_tables_of_interest() + + + with mariadb_conn(cursorclass=pymysql.cursors.DictCursor) as mcon, postgres_conn() as pcon: with mcon.cursor() as mcurse, pcon.cursor(cursor_factory=extras.DictCursor) as pcurse: for table in tables_of_interest: #create equivalent table in postgres @@ -115,35 +85,15 @@ if __name__ == "__main__": pcurse.execute(create_table_statement) pcon.commit() - #check if tables already exist and have the proper size - #msize_check = 'select count(*) from {schema}.{table};'.format(schema=mschema,table=table) - #psize_check = 'select count(*) from {schema}.{table};'.format(schema=pschema,table=table) - #yes I am using an insecure way to build these^^^ statements. - #It shouldn't matter because if someone is changing this source to - #to harm your db, you've already lost. - #mcurse.execute(msize_check) - #pcurse.execute(psize_check) - - #psize = pcurse.fetchall()[0][0] - #msize = mcurse.fetchall()[0]['count(*)'] - - #if psize > msize : - # #if they arn't the same, mention error and continue - # raise Exception("TABLE {} in postgres has more data than mysql".format(table)) - # continue - #elif psize != 0: - # raise Exception("TABLE {} in postgres is not empty".format(table)) - # continue - #Get the data from mysql mcurse.execute("SELECT * FROM {schema}.{table}".format(schema=mschema,table=table)) #FIX setting up sql this^^^ way is improper. - a = mcurse.fetchall() + results = mcurse.fetchall() #build the insert statement template #get list of field names - column_list = [sql.SQL(x) for x in a[0]] - column_inserts = [sql.SQL("%({})s".format(x)) for x in a[0]] #fix with sql.Placeholder + column_list = [sql.SQL(x) for x in results[0]] + column_inserts = [sql.SQL("%({})s".format(x)) for x in results[0]] #fix with sql.Placeholder #generate insert statement psql_insert = sql.SQL("INSERT INTO {table} ({columns}) VALUES %s ").format( table=sql.Identifier(pschema,table) @@ -162,4 +112,7 @@ if __name__ == "__main__": ]) #insert the data with page_size - extras.execute_values(pcurse,psql_insert,argslist=a,template=template, page_size=1000) + extras.execute_values(pcurse,psql_insert,argslist=results,template=template, page_size=1000) + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/history_downloader/selected_trials.sql b/scripts/drugtools/selected_trials.sql similarity index 100% rename from history_downloader/selected_trials.sql rename to scripts/drugtools/selected_trials.sql