예제 #1
0
 */
 $app_date = $prow['pc_eventDate'] . " " . $prow['pc_startTime'];
 $app_time = strtotime($app_date);
 $app_time_hour = round($app_time / 3600);
 $curr_total_hour = round(time() / 3600);
 $remaining_app_hour = round($app_time_hour - $curr_total_hour);
 $remain_hour = round($remaining_app_hour - $SMS_NOTIFICATION_HOUR);
 // larry :: debug
 //echo "\nDEBUG :: checkdate=$check_date, app_date=$app_date, apptime=$app_time remain_hour=$remain_hour -- CRON_TIME=$CRON_TIME\n";
 // build log message
 $strMsg = "\n========================" . $TYPE . " || " . date("Y-m-d H:i:s") . "=========================";
 $strMsg .= "\nSEND NOTIFICATION BEFORE:" . $SMS_NOTIFICATION_HOUR . " || CRONJOB RUN EVERY:" . $CRON_TIME . " || APPDATETIME:" . $app_date . " || REMAINING APP HOUR:" . $remaining_app_hour . " || SEND ALERT AFTER:" . $remain_hour;
 // check in the interval
 if ($remain_hour >= -$CRON_TIME && $remain_hour <= $CRON_TIME) {
     // insert entry in notification_log table
     cron_InsertNotificationLogEntry($TYPE, $prow, $db_email_msg);
     //set message
     $db_email_msg['message'] = cron_setmessage($prow, $db_email_msg);
     // send sms to patinet - if not in test mode
     if ($bTestRun == 0) {
         cron_SendSMS($prow['phone_cell'], $db_email_msg['email_subject'], $db_email_msg['message'], $db_email_msg['email_sender']);
     }
     // larry :: debug
     echo "\nDEBUG :: sms was sent to= " . $prow['phone_cell'] . " \nsender= " . $db_email_msg['email_sender'] . " \nsbj= " . $db_email_msg['email_subject'] . " \nmsg= " . $db_email_msg['message'] . "\n";
     //update entry >> pc_sendalertsms='Yes'
     cron_updateentry($TYPE, $prow['pid'], $prow['pc_eid']);
     $strMsg .= " || ALERT SENT SUCCESSFULLY TO " . $prow['phone_cell'];
     $strMsg .= "\n" . $patient_info . "\n" . $smsgateway_info . "\n" . $data_info . "\n" . $db_email_msg['message'];
 }
 // write logs for every reminder sent
 WriteLog($strMsg);
    if ($greeting == null) {
        //Use the default when the message is not found
        $greeting = $GLOBALS['phone_appt_message']['Default'];
    }
    //Set up the parameters for the call
    $data = array("firstName" => $prow['fname'], "lastName" => $prow['lname'], "phone" => $prow['phone_home'], "apptDate" => $appt_date, "apptTime" => $appt_time, "doctor" => $prow['pc_aid'], "greeting" => $greeting, "timeRange" => $phone_time_range, "type" => "appointment", "timeZone" => date('P'), "callerId" => $fac_phone_map[$prow['pc_facility']]);
    //Make the call
    $response = $client->sendRequest("appointment", "POST", $data);
    // check response for success or error
    if ($response->IsError) {
        $strMsg = "Error starting phone call for {$prow['fname']} | {$prow['lname']} | {$prow['phone_home']} | {$appt_date} | {$appt_time} | {$response->ErrorMessage}\n";
    } else {
        $strMsg = "\n========================" . $type . " || " . date("Y-m-d H:i:s") . "=========================";
        $strMsg .= "\nPhone reminder sent successfully: {$prow['fname']} | {$prow['lname']} |  | {$prow['phone_home']} | {$appt_date} | {$appt_time} ";
        // insert entry in notification_log table
        cron_InsertNotificationLogEntry($prow, $greeting, $phone_url);
        //update entry >> pc_sendalertsms='Yes'
        cron_updateentry($type, $prow['pid'], $prow['pc_eid']);
    }
    //echo $strMsg;
    WriteLog($strMsg);
}
sqlClose();
////////////////////////////////////////////////////////////////////
// Function:	cron_updateentry
// Purpose:	update status yes if alert send to patient
////////////////////////////////////////////////////////////////////
function cron_updateentry($type, $pid, $pc_eid)
{
    $query = "update openemr_postcalendar_events set ";
    // larry :: and here again same story - this time for sms pc_sendalertsms - no such field in the table