$REDCAP_TOKEN,'content' => 'record','format' => 'json',
'type' => 'flat','records' => $RECORD,'events'=>array($EVENT));
# - - - - - - - - - - - - - - - - - - #
# Curl Commands
$exp = curl_init();
curl_setopt($exp, CURLOPT_URL, $API_URL);
curl_setopt($exp, CURLOPT_POSTFIELDS, http_build_query($DATA, '', '&'));
curl_setopt($exp, CURLOPT_RETURNTRANSFER, true);
curl_setopt($exp, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($exp, CURLOPT_VERBOSE, 0);
curl_setopt($exp, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($exp, CURLOPT_AUTOREFERER, true);
curl_setopt($exp, CURLOPT_MAXREDIRS, 10);
curl_setopt($exp, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($exp, CURLOPT_FRESH_CONNECT, 1);
$output = curl_exec($exp);
$list=json_decode($output, true);
curl_close($exp);
$record_id=$list[0]['record_id'];
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# B. Only Process SBIRT Survey Responses if it's Complete
# "Submitted":
# - - - - - - - - - - - - - - - - - - #
$sbirt_complete=$list[0]['sbirt_integrated_screening_tool_complete'];
if($sbirt_complete=='2') {
$sbirt_q1=$list[0]['sbirt_q1']; $sbirt_q2=$list[0]['sbirt_q2'];
$sbirt_q3=$list[0]['sbirt_q3']; $sbirt_q4=$list[0]['sbirt_q4'];
$sbirt_q5=$list[0]['sbirt_q5']; $sbirt_q6=$list[0]['sbirt_q6'];
$sbirt_q7=$list[0]['sbirt_q7']; $sbirt_q8=$list[0]['sbirt_q8'];
$sbirt_q9=$list[0]['sbirt_q9'];
# - - - - - - - - - - - - - - - - - - #
# Patient Information:
$pat_first_name=$list[0]['first_name'];
$pat_last_name=$list[0]['last_name'];
$race=$list[0]['race'];
if($race=='1'){$race='White';}
if($race=='2'){$race='Black or African American';}
if($race=='3'){$race='American Indian/Alaska Native';}
if($race=='4'){$race='Asian';}
if($race=='5'){$race='Native Hawaiian or Other Pacific Islander';}
if($race=='7'){$race='Unable to Determine';}
if($race==''){$race='';}
$pat_phone=$list[0]['telephone'];
$pat_address=$list[0]['street'].", ".$list[0]['city'].", ".$list[0]['state'].", ".$list[0]['zip'];
$ethnicity=$list[0]['ethnicity'];
$exp_due_date=$list[0]['delivery_date'];
# $pat_member_id=
$lang=$list[0]['language'];
# - - - - - - - - - - - - - - - - - - #
# Provider Information:
$practice_name=$list[0]['practice_name'];
$Screen_providers_name=$list[0]['screen_provider_name'];
$group_npi=$list[0]['group_npi'];
$provider_phone=$list[0]['provider_phone_number'];
$individual_npi=$list[0]['individual_npi'];
# - - - - - - - - - - - - - - - - - - #
# Insurance Healthcare Checkbox:
$insurance_name=$list[0]['insurance_name'];
if($insurance_name==''){$abt=''; $advicare=''; $bc_hp_medicaid=''; $first_choice=''; $molina=''; $scdhhs=''; $wellcare=''; $bc_bssc_bchp=''; }
else {
$abt=($insurance_name==0)? 'Yes' : '';
$advicare=($insurance_name==1)? 'Yes' : '';
$bc_hp_medicaid=($insurance_name==2)? 'Yes' : '';
$first_choice = ($insurance_name==3)? 'Yes' : '';
$molina = ($insurance_name==4)? 'Yes' : '';
$scdhhs = ($insurance_name==5)? 'Yes' : '';
$wellcare = ($insurance_name==6)? 'Yes' : '';
$bc_bssc_bchp = ($insurance_name==7)? 'Yes' : '';
}
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# C. Evaluate the Text Responses and Assign Coded Value:
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# SBIRT Q1:
$sbirt_q1=strtolower(trim($sbirt_q1));
# if(in_array($sbirt_q1, $yes_array)){ $sbirt_q1_ans='1'; $parents_y='Yes';}
# else {$parents_y='';}
if(in_array($sbirt_q1, $no_array)){ $sbirt_q1_ans='0'; $parents_n='Yes';}
else {$parents_n='';}
if(in_array($sbirt_q1, $yes_array)){ $sbirt_q1_ans='1'; $parents_y='Yes';}
else {$parents_y='';}
# SBIRT Q2:
$sbirt_q2=strtolower(trim($sbirt_q2));
if(in_array($sbirt_q2, $yes_array)){ $sbirt_q2_ans='1'; $peers_y='Yes';}
else {$peers_y='';}
if(in_array($sbirt_q2, $no_array)){ $sbirt_q2_ans='0'; $peers_n='Yes';}
else {$peers_n='';}
# SBIRT Q3:
$sbirt_q3=strtolower(trim($sbirt_q3));
if(in_array($sbirt_q3, $yes_array)){ $sbirt_q3_ans='1'; $partner_y='Yes';}
else {$partner_y='';}
if(in_array($sbirt_q3, $no_array)){ $sbirt_q3_ans='0'; $partner_n='Yes';}
else {$partner_n='';}
# SBIRT Q4:
$sbirt_q4=strtolower(trim($sbirt_q4));
if(in_array($sbirt_q4, $yes_array)){ $sbirt_q4_ans='1'; $violence_y='Yes';}
else {$violence_y='';}
if(in_array($sbirt_q4, $no_array)){ $sbirt_q4_ans='0'; $violence_n='Yes';}
else {$violence_n='';}
# SBIRT Q5:
$sbirt_q5=strtolower(trim($sbirt_q5));
if(in_array($sbirt_q5, $yes_array)){ $sbirt_q5_ans='1'; }
if(in_array($sbirt_q5, $no_array)){ $sbirt_q5_ans='0'; }
# SBIRT Q6:
$sbirt_q6=strtolower(trim($sbirt_q6));
if(in_array($sbirt_q6, $yes_array)){ $sbirt_q6_ans='1'; $emotion_y='Yes';}
else {$emotion_y='';}
if(in_array($sbirt_q6, $no_array)){ $sbirt_q6_ans='0'; $emotion_n='Yes';}
else {$emotion_n='';}
# SBIRT Q7:
$sbirt_q7=strtolower(trim($sbirt_q7));
if(in_array($sbirt_q7, $yes_array)){ $sbirt_q7_ans='1'; $past_y='Yes';}
else {$past_y='';}
if(in_array($sbirt_q7, $no_array)){ $sbirt_q7_ans='0'; $past_n='Yes';}
else {$past_n='';}
# SBIRT Q8:
$sbirt_q8=strtolower(trim($sbirt_q8));
if(in_array($sbirt_q8, $yes_array)){ $sbirt_q8_ans='1'; $present_y='Yes';}
else {$present_y='';}
if(in_array($sbirt_q8, $no_array)){ $sbirt_q8_ans='0'; $present_n='Yes';}
else {$present_n='';}
# SBIRT Q9:
$sbirt_q9=strtolower(trim($sbirt_q9));
if(in_array($sbirt_q9, $yes_array)){ $sbirt_q9_ans='1'; $smoking_y='Yes';}
else {$smoking_y='';}
if(in_array($sbirt_q9, $no_array)){ $sbirt_q9_ans='0'; $smoking_n='Yes';}
else {$smoking_n='';}
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# D. Determine Risk Category and Send Text w/ Twilio API:
$client = new Client($sid, $token);
# - - - - - - - - - - - - - - - - - - - - - #
# Low Risk Text Messages
if($sbirt_q1_ans=='0' && $sbirt_q2_ans=='0' && $sbirt_q3_ans=='0' && $sbirt_q4_ans=='0' && $sbirt_q5_ans=='0' && $sbirt_q6_ans=='0' && $sbirt_q7_ans=='0' && $sbirt_q8_ans=='0' && $sbirt_q9_ans=='0'){
$risk_category='0';
$clinic_risk_cat___0='1'; $clinic_risk_cat___1='0';
$clinic_risk_cat___2='0'; $clinic_risk_cat___3='0';
$clinic_risk_cat___4='0';
# Build & send Twilio text message:
$client->messages->create($cell_num, array("body"=>$TXT_GLOBAL['low_txt_1'],"from"=>$twilio_num));
sleep(1);
$client->messages->create($cell_num, array("body"=>$TXT_GLOBAL['low_txt_2'],"from"=>$twilio_num));
sleep(1);
$client->messages->create($cell_num, array("body"=>$TXT_GLOBAL['low_contact_txt'],"from"=>$twilio_num));
sleep(2);
$client->messages->create($cell_num, array("body"=>$TXT_GLOBAL['safety_txt'],"from"=>$twilio_num));
# SBIRT PDF Form Details:
$bf_1_na='Yes'; $bf_2_na='Yes'; $bf_3_na='Yes'; $bf_4_na='Yes'; $ref_not_warrant='Yes';
}
# Not Low Risk:
else {
# SBIRT PDF Form Details:
$bf_1_na=''; $bf_2_na=''; $bf_3_na=''; $bf_4_na=''; $ref_not_warrant='';
# - - - - - - - - - - - - - - - - - - - - - #
# Positive Depression Risk:
if($sbirt_q6_ans=='1'){
$risk_category='1';
$clinic_risk_cat___0='0';
}
# Not positive depression, low risk:
else {
# - - - - - - - - - - - - - - - - - - - - - #
# Prevention Risk:
if ($sbirt_q5_ans=='1' && $sbirt_q6_ans=='0'){
$risk_category='2';
$clinic_risk_cat___0='0';
}
# Not Prevention, positive depression, low risk
else {
# - - - - - - - - - - - - - - - - - - - - - #
# Substance and Domestic Abuse Risk:
if ($sbirt_q1_ans='1' || $sbirt_q2_ans=='1' || $sbirt_q3_ans=='1' || $sbirt_q4_ans=='1' || $sbirt_q7_ans=='1' || $sbirt_q8_ans=='1' || $sbirt_q9_ans=='1'){
if ($sbirt_q4_ans=='1') {
$risk_category='4';
$clinic_risk_cat___0='0';
}
else {
$risk_category='3';
$clinic_risk_cat___0='0';
}
}
} # Not Prevention, positive depression, low risk
} # else not low risk && not positive depression
# Clinician Risk Categories:
if($sbirt_q6_ans=='1'){ #Pos. Depression
$clinic_risk_cat___1='1'; #Pos. Depression
$clinic_risk_cat___2='0'; # Prevention
if($sbirt_q4_ans=='1'){ $clinic_risk_cat___4='1'; } #Dom. Abuse
else { $clinic_risk_cat___4='0'; } #Dom. Abuse
if($sbirt_q1_ans=='1' || $sbirt_q2_ans=='1' || $sbirt_q3_ans=='1' || $sbirt_q7_ans=='1' || $sbirt_q8_ans=='1' || $sbirt_q9_ans=='1'){
$clinic_risk_cat___3='1'; #Sub. Abuse
}
else { $clinic_risk_cat___3='0'; } #Sub. Abuse
}
else {
$clinic_risk_cat___1='0'; #Pos. Depression
if($sbirt_q5_ans=='1'){
$clinic_risk_cat___2='1'; #Prevention
if($sbirt_q4_ans=='1'){ $clinic_risk_cat___4='1'; } #Dom. Abuse
else { $clinic_risk_cat___4='0'; }
if($sbirt_q1_ans=='1' || $sbirt_q2_ans=='1' || $sbirt_q3_ans=='1' || $sbirt_q7_ans=='1' || $sbirt_q8_ans=='1' || $sbirt_q9_ans=='1'){
$clinic_risk_cat___3='1'; #Sub. Abuse
}
else { $clinic_risk_cat___3='0'; } #Sub. Abuse
}
else {
if($sbirt_q4_ans=='1'){ $clinic_risk_cat___4='1'; } #Dom. Abuse
else { $clinic_risk_cat___4='0'; }
if($sbirt_q1_ans=='1' || $sbirt_q2_ans=='1' || $sbirt_q3_ans=='1' || $sbirt_q7_ans=='1' || $sbirt_q8_ans=='1' || $sbirt_q9_ans=='1'){
$clinic_risk_cat___3='1';
}
else { $clinic_risk_cat___3='0'; }
}
}
} # else not low risk
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# E. Import Risk Category and Coded Values for
# Text Messages:
# - - - - - - - - - - - - - - - - - - - - - - - - - #
$import_info=array('record_id'=>$record_id,'redcap_event_name'=>$EVENT,'txt_risk_cat'=>$risk_category,'sbirt_q1_ans'=>$sbirt_q1_ans,'sbirt_q2_ans'=>$sbirt_q2_ans,'sbirt_q3_ans'=>$sbirt_q3_ans,'sbirt_q4_ans'=>$sbirt_q4_ans,'sbirt_q5_ans'=>$sbirt_q5_ans,'sbirt_q6_ans'=>$sbirt_q6_ans,'sbirt_q7_ans'=>$sbirt_q7_ans,'sbirt_q8_ans'=>$sbirt_q8_ans,'sbirt_q9_ans'=>$sbirt_q9_ans,'clinic_risk_cat___0'=>$clinic_risk_cat___0,'clinic_risk_cat___1'=>$clinic_risk_cat___1,'clinic_risk_cat___2'=>$clinic_risk_cat___2,'clinic_risk_cat___3'=>$clinic_risk_cat___3,'clinic_risk_cat___4'=>$clinic_risk_cat___4);
$import=json_encode(array($import_info));
$DATA_IMPORT=array('token'=>$REDCAP_TOKEN,'content'=>'record', 'format'=>'json','type'=>'flat','data'=>$import);
$imp = curl_init();
curl_setopt($imp, CURLOPT_URL, $API_URL);
curl_setopt($imp, CURLOPT_POSTFIELDS, http_build_query($DATA_IMPORT, '', '&'));
curl_setopt($imp, CURLOPT_RETURNTRANSFER, true);
curl_setopt($imp, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($imp, CURLOPT_VERBOSE, 0);
curl_setopt($imp, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($imp, CURLOPT_AUTOREFERER, true);
curl_setopt($imp, CURLOPT_MAXREDIRS, 10);
curl_setopt($imp, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($imp, CURLOPT_FRESH_CONNECT, 1);
curl_exec($imp);
curl_close($imp);
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# F. Build and Create FDF and Create and Import PDF:
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# 1. Build FDF:
$fdf_content = "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
$fdf_content .= "<>";
# 2. Create FDF:
$content = $fdf_header ."\n". $fdf_content ."\n". $fdf_footer;
$FDFfile="/var/www/html/twh.musc.edu/momStrong-pid35680/SBIRT.fdf";
file_put_contents($FDFfile, $content);
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# 3. Fill in PDF using the FDF File:
$raw_pdf="/var/www/html/twh.musc.edu/momStrong-pid35680/sbirt_raw_template.pdf";
$output_pdf=$pat_last_name."_SBIRT.pdf";
$output_file="/var/www/html/twh.musc.edu/momStrong-pid35680/".$output_pdf;
exec("pdftk $raw_pdf fill_form $FDFfile output $output_pdf");
# - - - - - - - - - - - - - - - - - - - - - - - - - #
# 5. Import PDF into REDCap Record:
$DATA_PDF=array('token'=>$REDCAP_TOKEN,'record'=>$RECORD, 'content' => 'file',
'action'=>'import','field'=>'sbirt_form','event'=>'baseline_arm_1');
$DATA_PDF['file']=(function_exists('curl_file_create') ? curl_file_create($output_file, 'application/pdf', $output_pdf) : "@$output_file");
# - - - - - - - - - - - - - - - - - - #
# Curl Commands
$exp = curl_init();
curl_setopt($exp, CURLOPT_URL, $API_URL);
curl_setopt($exp, CURLOPT_POSTFIELDS, $DATA_PDF);
curl_setopt($exp, CURLOPT_RETURNTRANSFER, true);
curl_setopt($exp, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($exp, CURLOPT_VERBOSE, 0);
curl_setopt($exp, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($exp, CURLOPT_AUTOREFERER, true);
curl_setopt($exp, CURLOPT_MAXREDIRS, 10);
curl_setopt($exp, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($exp, CURLOPT_FRESH_CONNECT, 1);
$output_pdf = curl_exec($exp);
curl_close($exp);
if (file_exists($FDFfile)){
shell_exec('rm -rf "'.$FDFfile.'"');
}
if (file_exists($output_file)){
shell_exec('rm -rf "'.$output_file.'"');
}
} #if sbirt_complete
else {
exit();
}
?>