$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); # Find the correct instance data: $instance_id = array_search($INSTANCE, array_column($list, 'redcap_repeat_instance')); $daily_checkin_complete=$list[$instance_id]['daily_checkin_dci_complete']; if($daily_checkin_complete=='2'){ $dci_q1=$list[$instance_id]['dci_q1']; $dci_q2=$list[$instance_id]['dci_q2']; $dci_q2a=$list[$instance_id]['dci_q2a']; $dci_q3=$list[$instance_id]['dci_q3']; $dci_q4=$list[$instance_id]['dci_q4']; $dci_q5=$list[$instance_id]['dci_q5']; $dci_q6=$list[$instance_id]['dci_q6']; $dci_q7=$list[$instance_id]['dci_q7']; $dci_q8=$list[$instance_id]['dci_q8']; $dci_q9=$list[$instance_id]['dci_q9']; $dci_q10=$list[$instance_id]['dci_q10']; $dci_q11=$list[$instance_id]['dci_q11']; $dci_q12=$list[$instance_id]['dci_q12']; $dci_q13=$list[$instance_id]['dci_q13']; # DCI Clinical Risk Categories (dci_clinician_risk) checkboxes: # Requesting a Call - Question/Unsure $dci_risk___1=($dci_q1=='1')? '1' : '0'; # Disrespectful Care- Call $dci_risk___2=(($dci_q2=='1' && $dci_q2a=='') || $dci_q2a=='1')? '1' : '0'; # Disrespectful Care - Do not Call $dci_risk___3=($dci_q2a=='0')? '1' : '0'; # - - - - - - - - - - # # High Risk Symptoms: # - - - - - - - - - - # # Chest Pain $dci_risk___4=($dci_q3=='1')? '1' : '0'; # Shortness of Breath/Trouble Breathing $dci_risk___5=($dci_q4=='1')? '1' : '0'; # Seizure $dci_risk___6=($dci_q5=='1')? '1' : '0'; # Thoughts of Harm Self or Baby $dci_risk___7=($dci_q6=='1')? '1' : '0'; # Bleeding $dci_risk___8=($dci_q7=='1')? '1' : '0'; # - - - - - - - - - - # # Urgent Symptoms: # - - - - - - - - - - # # Headache $dci_risk___9=($dci_q8=='1')? '1' : '0'; # Headache Vision Change $dci_risk___10=($dci_q9=='1')? '1' : '0'; # Red Swollen Legs $dci_risk___11=($dci_q10=='1')? '1' : '0'; # Fever $dci_risk___12=($dci_q11=='1')? '1' : '0'; # Incision $dci_risk___13=($dci_q12=='1')? '1' : '0'; # Dizziness Fainting $dci_risk___14=($dci_q13=='1')? '1' : '0'; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Determine Text Risk Category # - - - - - - - - - - - - - - - - - - # # Low Risk: $lo_risk_cnt=$dci_q1+$dci_q2+$dci_q3+$dci_q4+$dci_q5+$dci_q6+$dci_q7+$dci_q8+$dci_q9+$dci_q10+$dci_q11+$dci_q12+$dci_q13; if($lo_risk_cnt==0){ $dci_risk___0='1'; $dci_txt_risk_cat='0'; $text_array=$low_risk_texts; # DONE - Below: auto texts low risk AND clinician risk low risk; } //if($lo_risk_cnt==0) # Logic: NOT LOW RISK: else { $hi_risk_cnt=$dci_q3+$dci_q4+$dci_q5+$dci_q6+$dci_q7; $urgent_risk_cnt=$dci_q8+$dci_q9+$dci_q10+$dci_q11+$dci_q12+$dci_q13; # 1 or More High Risk Symptom: if($hi_risk_cnt >= 1){ # Only 1 High Risk Symptom if($hi_risk_cnt==1){ # Check Individual High Risk Symptoms: if ($dci_q3==1){ $dci_txt_risk_cat='4'; //Chest Pain $text_array=$chest_texts; } if ($dci_q4==1){ $dci_txt_risk_cat='5'; //Shortness of Breath $text_array=$breath_texts; } if ($dci_q5==1){ $dci_txt_risk_cat='6'; //Seizure $text_array=$seizure_texts; } if ($dci_q6==1){ $dci_txt_risk_cat='7'; //Thoughts of Harm Self or Baby $text_array=$harm_texts; } if ($dci_q7==1){ $dci_txt_risk_cat='8'; //Bleeding $text_array=$bleeding_texts; } } //if($hi_risk_cnt==1) # More than 1 High Risk Symptom: else { $dci_txt_risk_cat='9'; $text_array=$high_risk_texts; # Done Below - TO DO: auto texts Multiple High Risk Symptoms } //Multiple High Risk Symptoms } //if($hi_risk_cnt >= 1){ # No High Risk Symptoms else { # 1 or More Urgent Symptoms if ($urgent_risk_cnt>=1){ $dci_txt_risk_cat='10'; $text_array=$urgent_texts; } //if ($urgent_risk_cnt>=1) # Not High Risk, Urgent, or Low Risk: else { if ($dci_risk___3=='1'){ $dci_txt_risk_cat='3'; $text_array=$disrespect_nocall_texts; } //Disrespectful - Do Not Call if ($dci_risk___1=='1'){ $dci_txt_risk_cat='1'; $text_array=$request_call_texts; } //Request a Call if ($dci_risk___2=='1'){ $dci_txt_risk_cat='2'; $text_array=$disrespect_call_texts; } //Disrespectful - Call } //else: not HR, U, LR } //No High Risk Symptoms } //else NOT LOW RISK # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Import DCI Risk Category into dci_clinician form: # - - - - - - - - - - - - - - - - - - # # Update Status Color: if ($dci_txt_risk_cat=='0' || $dci_txt_risk_cat=='3'){ $dci_clinician_complete='2'; } else { $dci_clinician_complete='0'; } $import_info=array('record_id'=>$RECORD,'redcap_event_name'=>$EVENT,'redcap_repeat_instrument'=>'','redcap_repeat_instance'=>$INSTANCE,'dci_txt_risk_cat'=>$dci_txt_risk_cat,'dci_clinician_risk___0'=>$dci_risk___0,'dci_clinician_risk___1'=>$dci_risk___1,'dci_clinician_risk___2'=>$dci_risk___2,'dci_clinician_risk___3'=>$dci_risk___3,'dci_clinician_risk___4'=>$dci_risk___4,'dci_clinician_risk___5'=>$dci_risk___5, 'dci_clinician_risk___6'=>$dci_risk___6,'dci_clinician_risk___7'=>$dci_risk___7,'dci_clinician_risk___8'=>$dci_risk___8,'dci_clinician_risk___9'=>$dci_risk___9,'dci_clinician_risk___10'=>$dci_risk___10,'dci_clinician_risk___11'=>$dci_risk___11,'dci_clinician_risk___12'=>$dci_risk___12,'dci_clinician_risk___13'=>$dci_risk___13,'dci_clinician_risk___14'=>$dci_risk___14,'dci_clinician_complete'=>$dci_clinician_complete); // print_r($import_info); $import=json_encode(array($import_info)); $DATA_IMP=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_IMP, '', '&')); 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); # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Determine Risk Category and Send Text Messages w/ Twilio API: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # $client = new Client($sid, $token); foreach ($text_array as $text_message){ $client->messages->create($cell_num, array("body"=>$text_message,"from"=>$twilio_num)); sleep(1); } //foreach ($text_array as $text_message) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Enter Statistics # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # $DATA=array('token'=>$REDCAP_TOKEN,'content' => 'record','format' => 'json', 'type' => 'flat','records' => $RECORD,'fields'=>array('daily_checkin_dci_complete'),'filterLogic'=>'[daily_checkin_dci_complete]="2"'); # - - - - - - - - - - - - - - - - - - # # 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); $num_of_dci=count($list); $import_info=array(); $import_info['record_id']=$RECORD; $import_info['redcap_event_name']='baseline_arm_1'; $import_info['redcap_repeat_instrument']=''; $import_info['redcap_repeat_instance']=''; if($EVENT=='day_1_arm_1'){ $import_info['dci_day1']=$num_of_dci; } if($EVENT=='day_2_arm_1'){ $import_info['dci_day2']=$num_of_dci; } if($EVENT=='day_3_arm_1'){ $import_info['dci_day3']=$num_of_dci; } if($EVENT=='day_4_arm_1'){ $import_info['dci_day4']=$num_of_dci; } if($EVENT=='day_5_arm_1'){ $import_info['dci_day5']=$num_of_dci; } if($EVENT=='day_6_arm_1'){ $import_info['dci_day6']=$num_of_dci; } if($EVENT=='day_7_arm_1'){ $import_info['dci_day7']=$num_of_dci; } $import=json_encode(array($import_info)); $DATA_IMP=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_IMP, '', '&')); 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); } //if($daily_checkin_complete=='2') ?>