Skip to content

Commit

Permalink
Inital Commit of FDA Clinical Trials
Browse files Browse the repository at this point in the history
Signed-off-by: johnholt <john.d.holt@lexisnexis.com>
  • Loading branch information
johnholt committed Jun 25, 2015
1 parent 6efbdf4 commit 84d3c7b
Show file tree
Hide file tree
Showing 63 changed files with 2,107 additions and 0 deletions.
26 changes: 26 additions & 0 deletions FDA_Clinical_Trial_Example/AACT/Enumerations.ecl
@@ -0,0 +1,26 @@
EXPORT Enumerations := MODULE
EXPORT ARM_Group_Type_Class := ENUM(UNSIGNED1, Unknown=0, Control, Active, Mixed);
Arm_Group_Type := RECORD
STRING enum_label;
Arm_Group_Type_Class cls;
END;
Arm_Group_Type_Enum := DATASET([
{'Active Comparator', Arm_Group_Type_Class.Active}
,{'Baseline', Arm_Group_Type_Class.Control}
,{'Case', Arm_Group_Type_Class.Active}
,{'Control', Arm_Group_Type_Class.Control}
,{'Experimental', Arm_Group_Type_Class.Active}
,{'Exposure Comparison', Arm_Group_Type_Class.Active}
,{'No Intervention', Arm_Group_Type_Class.Control}
,{'Null', Arm_Group_Type_Class.Unknown}
,{'Other', Arm_Group_Type_Class.Active}
,{'Participant Flow', Arm_Group_Type_Class.Mixed}
,{'Placebo Comparator', Arm_Group_Type_Class.Control}
,{'Reported Event', Arm_Group_Type_Class.Mixed}
,{'Results Outcome', Arm_Group_Type_Class.Mixed}
,{'Sham Comparator', Arm_Group_Type_Class.Control}
,{'Treatment Comparison', Arm_Group_Type_Class.Control}
], Arm_Group_Type);
Group_Type_Dict := DICTIONARY(Arm_Group_Type_Enum, {enum_label => cls});
EXPORT Arm_Group_Type_2_Class(STRING s) := Group_Type_Dict[s].cls;
END;
1 change: 1 addition & 0 deletions FDA_Clinical_Trial_Example/AACT/FileName_Prefix.ecl
@@ -0,0 +1 @@
EXPORT FileName_Prefix := '~thor::jdh::fda_clinical_trials::AACT201409_';
33 changes: 33 additions & 0 deletions FDA_Clinical_Trial_Example/AACT/File_Arm_Groups.ecl
@@ -0,0 +1,33 @@
IMPORT AACT;
fName := AACT.FileName_Prefix + 'arm_groups_txt';
fixed := AACT.Fix_Broken_Records(fName, 6);

PATTERN pipe_char := '\174';
PATTERN content1 := PATTERN('[\000-\173]');
PATTERN content2 := PATTERN('[\175-\377]');
PATTERN content := (content1 OR content2)+;
PATTERN agid_content := content;
PATTERN nid_content := content;
PATTERN arm_group_label_content := content;
PATTERN arm_group_type_content := content;
PATTERN description_content := content;
PATTERN group_id_content := content;
RULE Arm_Groups_Rule := agid_content pipe_char
OPT(nid_content) pipe_char
OPT(arm_group_label_content) pipe_char
OPT(arm_group_type_content) pipe_char
OPT(description_content) pipe_char
OPT(group_id_content);

Arm_Groups := RECORD
STRING ARM_GROUP_ID := MATCHTEXT(agid_content);
STRING NCT_ID := MATCHTEXT(nid_content);
STRING ARM_GROUP_LABEL := MATCHTEXT(arm_group_label_content);
STRING ARM_GROUP_TYPE := MATCHTEXT(arm_group_type_content);
STRING DESCRIPTION := MATCHTEXT(description_content);
STRING GROUP_ID := MATCHTEXT(group_id_content);
END;
ds := PARSE(fixed, line, Arm_Groups_Rule, Arm_Groups, MAX)
: PERSIST('PERSIST::JDH::AACT::ARM_GROUPS');

EXPORT File_Arm_Groups := ds;
10 changes: 10 additions & 0 deletions FDA_Clinical_Trial_Example/AACT/File_Authorities.ecl
@@ -0,0 +1,10 @@
IMPORT AACT;
fName := AACT.FileName_Prefix + 'authorities_txt';
Authorities := RECORD
STRING AUTHORITY_ID;
STRING NCT_ID;
STRING AUTHORITY;
END;
ds := DATASET(fName, Authorities, CSV(HEADING(1),SEPARATOR('|'),TERMINATOR('\r\n')));

EXPORT File_Authorities := ds;
14 changes: 14 additions & 0 deletions FDA_Clinical_Trial_Example/AACT/File_Central_Contacts.ecl
@@ -0,0 +1,14 @@
IMPORT AACT;
fName := AACT.FileName_Prefix + 'central_contacts_txt';
Central_Contacts := RECORD
STRING CENTRAL_CONTACT_ID;
STRING NCT_ID;
STRING CONTACT_TYPE;
STRING NAME_DEGREE;
STRING PHONE;
STRING PHONE_EXT;
STRING EMAIL;
END;
ds := DATASET(fName, Central_Contacts, CSV(HEADING(1),SEPARATOR('|'),TERMINATOR('\r\n')));

EXPORT File_Central_Contacts := ds;
152 changes: 152 additions & 0 deletions FDA_Clinical_Trial_Example/AACT/File_Clinical_Study.ecl
@@ -0,0 +1,152 @@
IMPORT AACT;
fName := AACT.FileName_Prefix + 'clinical_study_txt';
fixed := AACT.Fix_Broken_Records(fName, 45);

PATTERN pipe_char := '\174';
PATTERN content1 := PATTERN('[\000-\173]');
PATTERN content2 := PATTERN('[\175-\377]');
PATTERN content := (content1 OR content2)+;
PATTERN nid_content := content;
PATTERN dwnld_date_content := content;
PATTERN dwnld_date_dt_content := content;
PATTERN osid_content := content;
PATTERN brief_title_content := content;
PATTERN official_title_content := content;
PATTERN acronym_content := content;
PATTERN source_content := content;
PATTERN has_dmc_content := content;
PATTERN brief_summary_content := content;
PATTERN detailed_desc_content := content;
PATTERN overall_stat_content := content;
PATTERN start_date_content := content;
PATTERN compl_date_content := content;
PATTERN compl_date_type_content := content;
PATTERN pri_compl_date_content := content;
PATTERN pri_compl_date_type_content := content;
PATTERN phase_content := content;
PATTERN study_type_content := content;
PATTERN study_design_content := content;
PATTERN num_arms_content := content;
PATTERN num_grps_content := content;
PATTERN enroll_type_content := content;
PATTERN enroll_content := content;
PATTERN biospec_retention_content := content;
PATTERN biospec_descr_content := content;
PATTERN criteria_content := content;
PATTERN gender_content := content;
PATTERN min_age_content := content;
PATTERN max_age_content := content;
PATTERN healthy_vol_content := content;
PATTERN sampling_meth_content := content;
PATTERN study_pop_content := content;
PATTERN verification_date_content := content;
PATTERN lastchanged_date_content := content;
PATTERN firstreceived_date_content := content;
PATTERN is_section_801_content := content;
PATTERN is_fda_reg_content := content;
PATTERN why_stopped_content := content;
PATTERN has_exp_access_content := content;
PATTERN firstreceived_results_content := content;
PATTERN url_content := content;
PATTERN target_duration_content := content;
PATTERN study_rank_content := content;
PATTERN limitations_content := content;

Clinical_Study := RECORD
STRING NCT_ID := MATCHTEXT(nid_content);
STRING DOWNLOAD_DATE := MATCHTEXT(dwnld_date_content);
STRING DOWNLOAD_DATE_DT := MATCHTEXT(dwnld_date_dt_content);
STRING ORG_STUDY_ID := MATCHTEXT(osid_content);
STRING BRIEF_TITLE := MATCHTEXT(brief_title_content);
STRING OFFICIAL_TITLE := MATCHTEXT(official_title_content);
STRING ACRONYM := MATCHTEXT(acronym_content);
STRING SOURCE := MATCHTEXT(source_content);
STRING HAS_DMC := MATCHTEXT(has_dmc_content);
STRING BRIEF_SUMMARY := MATCHTEXT(brief_summary_content);
STRING DETAILED_DESCRIPTION := MATCHTEXT(detailed_desc_content);
STRING OVERALL_STATUS := MATCHTEXT(overall_stat_content);
STRING START_DATE := MATCHTEXT(start_date_content);
STRING COMPLETION_DATE := MATCHTEXT(compl_date_content);
STRING COMPLETION_DATE_TYPE := MATCHTEXT(compl_date_type_content);
STRING PRIMARY_COMPLETION_DATE := MATCHTEXT(pri_compl_date_content);
STRING PRIMARY_COMPLETION_DATE_TYPE := MATCHTEXT(pri_compl_date_type_content);
STRING PHASE := MATCHTEXT(phase_content);
STRING STUDY_TYPE := MATCHTEXT(study_type_content);
STRING STUDY_DESIGN := MATCHTEXT(study_design_content);
STRING NUMBER_OF_ARMS := MATCHTEXT(num_arms_content);
STRING NUMBER_OF_GROUPS := MATCHTEXT(num_grps_content);
STRING ENROLLMENT_TYPE := MATCHTEXT(enroll_type_content);
STRING ENROLLMENT := MATCHTEXT(enroll_content);
STRING BIOSPEC_RETENTION := MATCHTEXT(biospec_retention_content);
STRING BIOSPEC_DESCR := MATCHTEXT(biospec_descr_content);
STRING CRITERIA := MATCHTEXT(criteria_content);
STRING GENDER := MATCHTEXT(gender_content);
STRING MINIMUM_AGE := MATCHTEXT(min_age_content);
STRING MAXIMUM_AGE := MATCHTEXT(max_age_content);
STRING HEALTHY_VOLUNTEERS := MATCHTEXT(healthy_vol_content);
STRING SAMPLING_METHOD := MATCHTEXT(sampling_meth_content);
STRING STUDY_POP := MATCHTEXT(study_pop_content);
STRING VERIFICATION_DATE := MATCHTEXT(verification_date_content);
STRING LASTCHANGED_DATE := MATCHTEXT(lastchanged_date_content);
STRING FIRSTRECEIVED_DATE := MATCHTEXT(firstreceived_date_content);
STRING IS_SECTION_801 := MATCHTEXT(is_section_801_content);
STRING IS_AACT_REGULATED := MATCHTEXT(is_fda_reg_content);
STRING WHY_STOPPED := MATCHTEXT(why_stopped_content);
STRING HAS_EXPANDED_ACCESS := MATCHTEXT(has_exp_access_content);
STRING FIRSTRECEIVED_RESULTS_DATE := MATCHTEXT(firstreceived_results_content);
STRING URL := XMLENCODE(MATCHTEXT(url_content));
STRING TARGET_DURATION := MATCHTEXT(target_duration_content);
STRING STUDY_RANK := MATCHTEXT(study_rank_content);
STRING LIMITATIONS_AND_CAVEATS := MATCHTEXT(limitations_content);
// UNSIGNED8 fpos:=fixed.fpos;
// UNSIGNED8 opos:=fixed.opos;
END;
RULE Clinical_Study_Rule := nid_content pipe_char
OPT(dwnld_date_content) pipe_char
OPT(dwnld_date_dt_content) pipe_char
OPT(osid_content) pipe_char
OPT(brief_title_content) pipe_char
OPT(official_title_content) pipe_char
OPT(acronym_content) pipe_char
OPT(source_content) pipe_char
OPT(has_dmc_content) pipe_char
OPT(brief_summary_content) pipe_char
OPT(detailed_desc_content) pipe_char
OPT(overall_stat_content) pipe_char
OPT(start_date_content) pipe_char
OPT(compl_date_content) pipe_char
OPT(compl_date_type_content) pipe_char
OPT(pri_compl_date_content) pipe_char
OPT(pri_compl_date_type_content) pipe_char
OPT(phase_content) pipe_char
OPT(study_type_content) pipe_char
OPT(study_design_content) pipe_char
OPT(num_arms_content) pipe_char
OPT(num_grps_content) pipe_char
OPT(enroll_type_content) pipe_char
OPT(enroll_content) pipe_char
OPT(biospec_retention_content) pipe_char
OPT(biospec_descr_content) pipe_char
OPT(criteria_content) pipe_char
OPT(gender_content) pipe_char
OPT(min_age_content) pipe_char
OPT(max_age_content) pipe_char
OPT(healthy_vol_content) pipe_char
OPT(sampling_meth_content) pipe_char
OPT(study_pop_content) pipe_char
OPT(verification_date_content) pipe_char
OPT(lastchanged_date_content) pipe_char
OPT(firstreceived_date_content) pipe_char
OPT(is_section_801_content) pipe_char
OPT(is_fda_reg_content) pipe_char
OPT(why_stopped_content) pipe_char
OPT(has_exp_access_content) pipe_char
OPT(firstreceived_results_content) pipe_char
OPT(url_content) pipe_char
OPT(target_duration_content) pipe_char
OPT(study_rank_content) pipe_char
OPT(limitations_content);
ds := PARSE(fixed, line, Clinical_Study_Rule, Clinical_Study, WHOLE)
: PERSIST('PERSIST::JDH::AACT::CLINICAL_STUDY');

EXPORT File_Clinical_Study := ds;
143 changes: 143 additions & 0 deletions FDA_Clinical_Trial_Example/AACT/File_Clinical_Study_noclob.ecl
@@ -0,0 +1,143 @@
IMPORT AACT;
fName := AACT.FileName_Prefix + 'clinical_study_noclob_txt';
fixed := AACT.Fix_Broken_Records(fName, 42);

PATTERN pipe_char := '\174';
PATTERN content1 := PATTERN('[\000-\173]');
PATTERN content2 := PATTERN('[\175-\377]');
PATTERN content := (content1 OR content2)+;
PATTERN nid_content := content;
PATTERN DOWNLOAD_DATE_content := content;
PATTERN DOWNLOAD_DATE_DT_content := content;
PATTERN ORG_STUDY_ID_content := content;
PATTERN BRIEF_TITLE_content := content;
PATTERN OFFICIAL_TITLE_content := content;
PATTERN ACRONYM_content := content;
PATTERN SOURCE_content := content;
PATTERN HAS_DMC_content := content;
PATTERN OVERALL_STATUS_content := content;
PATTERN START_DATE_content := content;
PATTERN COMPLETION_DATE_content := content;
PATTERN COMPLETION_DATE_TYPE_content := content;
PATTERN PRIMARY_COMPLETION_DATE_content := content;
PATTERN PRIMARY_COMPLETION_DATE_TYPE_content := content;
PATTERN PHASE_content := content;
PATTERN STUDY_TYPE_content := content;
PATTERN STUDY_DESIGN_content := content;
PATTERN NUMBER_OF_ARMS_content := content;
PATTERN NUMBER_OF_GROUPS_content := content;
PATTERN ENROLLMENT_TYPE_content := content;
PATTERN ENROLLMENT_content := content;
PATTERN BIOSPEC_RETENTION_content := content;
PATTERN BIOSPEC_DESCR_content := content;
PATTERN GENDER_content := content;
PATTERN MINIMUM_AGE_content := content;
PATTERN MAXIMUM_AGE_content := content;
PATTERN HEALTHY_VOLUNTEERS_content := content;
PATTERN SAMPLING_METHOD_content := content;
PATTERN STUDY_POP_content := content;
PATTERN VERIFICATION_DATE_content := content;
PATTERN LASTCHANGED_DATE_content := content;
PATTERN FIRSTRECEIVED_DATE_content := content;
PATTERN IS_SECTION_801_content := content;
PATTERN IS_AACT_REGULATED_content := content;
PATTERN WHY_STOPPED_content := content;
PATTERN HAS_EXPANDED_ACCESS_content := content;
PATTERN FIRSTRECEIVED_RESULTS_DATE_content := content;
PATTERN URL_content := content;
PATTERN TARGET_DURATION_content := content;
PATTERN STUDY_RANK_content := content;
PATTERN LIMITATIONS_AND_CAVEATS_content := content;
RULE Clinical_Study_noclob_rule :=
nid_content pipe_char
OPT(DOWNLOAD_DATE_content) pipe_char
OPT(DOWNLOAD_DATE_DT_content) pipe_char
OPT(ORG_STUDY_ID_content) pipe_char
OPT(BRIEF_TITLE_content) pipe_char
OPT(OFFICIAL_TITLE_content) pipe_char
OPT(ACRONYM_content) pipe_char
OPT(SOURCE_content) pipe_char
OPT(HAS_DMC_content) pipe_char
OPT(OVERALL_STATUS_content) pipe_char
OPT(START_DATE_content) pipe_char
OPT(COMPLETION_DATE_content) pipe_char
OPT(COMPLETION_DATE_TYPE_content) pipe_char
OPT(PRIMARY_COMPLETION_DATE_content) pipe_char
OPT(PRIMARY_COMPLETION_DATE_TYPE_content) pipe_char
OPT(PHASE_content) pipe_char
OPT(STUDY_TYPE_content) pipe_char
OPT(STUDY_DESIGN_content) pipe_char
OPT(NUMBER_OF_ARMS_content) pipe_char
OPT(NUMBER_OF_GROUPS_content) pipe_char
OPT(ENROLLMENT_TYPE_content) pipe_char
OPT(ENROLLMENT_content) pipe_char
OPT(BIOSPEC_RETENTION_content) pipe_char
OPT(BIOSPEC_DESCR_content) pipe_char
OPT(GENDER_content) pipe_char
OPT(MINIMUM_AGE_content) pipe_char
OPT(MAXIMUM_AGE_content) pipe_char
OPT(HEALTHY_VOLUNTEERS_content) pipe_char
OPT(SAMPLING_METHOD_content) pipe_char
OPT(STUDY_POP_content) pipe_char
OPT(VERIFICATION_DATE_content) pipe_char
OPT(LASTCHANGED_DATE_content) pipe_char
OPT(FIRSTRECEIVED_DATE_content) pipe_char
OPT(IS_SECTION_801_content) pipe_char
OPT(IS_AACT_REGULATED_content) pipe_char
OPT(WHY_STOPPED_content) pipe_char
OPT(HAS_EXPANDED_ACCESS_content) pipe_char
OPT(FIRSTRECEIVED_RESULTS_DATE_content) pipe_char
OPT(URL_content) pipe_char
OPT(TARGET_DURATION_content) pipe_char
OPT(STUDY_RANK_content) pipe_char
OPT(LIMITATIONS_AND_CAVEATS_content);


Clinical_Study_noclob := RECORD
STRING NCT_ID := MATCHTEXT(nid_content);
STRING DOWNLOAD_DATE := MATCHTEXT(DOWNLOAD_DATE_content);
STRING DOWNLOAD_DATE_DT := MATCHTEXT(DOWNLOAD_DATE_DT_content);
STRING ORG_STUDY_ID := MATCHTEXT(ORG_STUDY_ID_content);
STRING BRIEF_TITLE := MATCHTEXT(BRIEF_TITLE_content);
STRING OFFICIAL_TITLE := MATCHTEXT(OFFICIAL_TITLE_content);
STRING ACRONYM := MATCHTEXT(ACRONYM_content);
STRING SOURCE := MATCHTEXT(SOURCE_content);
STRING HAS_DMC := MATCHTEXT(HAS_DMC_content);
STRING OVERALL_STATUS := MATCHTEXT(OVERALL_STATUS_content);
STRING START_DATE := MATCHTEXT(START_DATE_content);
STRING COMPLETION_DATE := MATCHTEXT(COMPLETION_DATE_content);
STRING COMPLETION_DATE_TYPE := MATCHTEXT(COMPLETION_DATE_TYPE_content);
STRING PRIMARY_COMPLETION_DATE := MATCHTEXT(PRIMARY_COMPLETION_DATE_content);
STRING PRIMARY_COMPLETION_DATE_TYPE := MATCHTEXT(PRIMARY_COMPLETION_DATE_TYPE_content);
STRING PHASE := MATCHTEXT(PHASE_content);
STRING STUDY_TYPE := MATCHTEXT(STUDY_TYPE_content);
STRING STUDY_DESIGN := MATCHTEXT(STUDY_DESIGN_content);
STRING NUMBER_OF_ARMS := MATCHTEXT(NUMBER_OF_ARMS_content);
STRING NUMBER_OF_GROUPS := MATCHTEXT(NUMBER_OF_GROUPS_content);
STRING ENROLLMENT_TYPE := MATCHTEXT(ENROLLMENT_TYPE_content);
STRING ENROLLMENT := MATCHTEXT(ENROLLMENT_content);
STRING BIOSPEC_RETENTION := MATCHTEXT(BIOSPEC_RETENTION_content);
STRING BIOSPEC_DESCR := MATCHTEXT(BIOSPEC_DESCR_content);
STRING GENDER := MATCHTEXT(GENDER_content);
STRING MINIMUM_AGE := MATCHTEXT(MINIMUM_AGE_content);
STRING MAXIMUM_AGE := MATCHTEXT(MAXIMUM_AGE_content);
STRING HEALTHY_VOLUNTEERS := MATCHTEXT(HEALTHY_VOLUNTEERS_content);
STRING SAMPLING_METHOD := MATCHTEXT(SAMPLING_METHOD_content);
STRING STUDY_POP := MATCHTEXT(STUDY_POP_content);
STRING VERIFICATION_DATE := MATCHTEXT(VERIFICATION_DATE_content);
STRING LASTCHANGED_DATE := MATCHTEXT(LASTCHANGED_DATE_content);
STRING FIRSTRECEIVED_DATE := MATCHTEXT(FIRSTRECEIVED_DATE_content);
STRING IS_SECTION_801 := MATCHTEXT(IS_SECTION_801_content);
STRING IS_AACT_REGULATED := MATCHTEXT(IS_AACT_REGULATED_content);
STRING WHY_STOPPED := MATCHTEXT(WHY_STOPPED_content);
STRING HAS_EXPANDED_ACCESS := MATCHTEXT(HAS_EXPANDED_ACCESS_content);
STRING FIRSTRECEIVED_RESULTS_DATE := MATCHTEXT(FIRSTRECEIVED_RESULTS_DATE_content);
STRING URL := XMLENCODE(MATCHTEXT(URL_content));
STRING TARGET_DURATION := MATCHTEXT(TARGET_DURATION_content);
STRING STUDY_RANK := MATCHTEXT(STUDY_RANK_content);
STRING LIMITATIONS_AND_CAVEATS := MATCHTEXT(LIMITATIONS_AND_CAVEATS_content);
END;
ds := PARSE(fixed, line, Clinical_Study_noclob_rule, Clinical_Study_noclob, MAX)
: PERSIST('PERSIST::JDH::AACT::CLINICAL_STUDY_NOCLOB');

EXPORT File_Clinical_Study_noclob := ds;

0 comments on commit 84d3c7b

Please sign in to comment.