function fetchEvents($from_date, $to_date, $where_param = null, $orderby_param = null) { $where = "( (e.pc_endDate >= '{$from_date}' AND e.pc_eventDate <= '{$to_date}' AND e.pc_recurrtype = '1') OR " . "(e.pc_eventDate >= '{$from_date}' AND e.pc_eventDate <= '{$to_date}') )"; if ($where_param) { $where .= $where_param; } $order_by = "e.pc_eventDate, e.pc_startTime"; if ($orderby_param) { $order_by = $orderby_param; } $query = "SELECT " . "e.pc_eventDate, e.pc_endDate, e.pc_startTime, e.pc_endTime, e.pc_duration, e.pc_recurrtype, e.pc_recurrspec, e.pc_recurrfreq, e.pc_catid, e.pc_eid, " . "e.pc_title, e.pc_hometext, e.pc_apptstatus, " . "p.fname, p.mname, p.lname, p.pid, p.pubpid, p.phone_home, p.phone_cell, " . "u.fname AS ufname, u.mname AS umname, u.lname AS ulname, u.id AS uprovider_id, " . "c.pc_catname, c.pc_catid " . "FROM openemr_postcalendar_events AS e " . "LEFT OUTER JOIN patient_data AS p ON p.pid = e.pc_pid " . "LEFT OUTER JOIN users AS u ON u.id = e.pc_aid " . "LEFT OUTER JOIN openemr_postcalendar_categories AS c ON c.pc_catid = e.pc_catid " . "WHERE {$where} " . "ORDER BY {$order_by}"; $res = sqlStatement($query); $events = array(); if ($res) { while ($row = sqlFetchArray($res)) { // if it's a repeating appointment, fetch all occurances in date range if ($row['pc_recurrtype']) { $reccuringEvents = getRecurringEvents($row, $from_date, $to_date); $events = array_merge($events, $reccuringEvents); } else { $events[] = $row; } } } return $events; }
function fetchEvents( $from_date, $to_date, $where_param = null, $orderby_param = null, $tracker_board = false ) { $where = "( (e.pc_endDate >= '$from_date' AND e.pc_eventDate <= '$to_date' AND e.pc_recurrtype = '1') OR " . "(e.pc_eventDate >= '$from_date' AND e.pc_eventDate <= '$to_date') )"; if ( $where_param ) $where .= $where_param; $order_by = "e.pc_eventDate, e.pc_startTime"; if ( $orderby_param ) { $order_by = $orderby_param; } // Tracker Board specific stuff $tracker_fields = ''; $tracker_joins = ''; if ($tracker_board) { $tracker_fields = "e.pc_room, e.pc_pid, t.id, t.date, t.apptdate, t.appttime, t.eid, t.pid, t.original_user, t.encounter, t.lastseq, t.random_drug_test, t.drug_screen_completed, " . "q.pt_tracker_id, q.start_datetime, q.room, q.status, q.seq, q.user, " . "s.toggle_setting_1, s.toggle_setting_2, s.option_id, " ; $tracker_joins = "LEFT OUTER JOIN patient_tracker AS t ON t.pid = e.pc_pid AND t.apptdate = e.pc_eventDate AND t.appttime = e.pc_starttime AND t.eid = e.pc_eid " . "LEFT OUTER JOIN patient_tracker_element AS q ON q.pt_tracker_id = t.id AND q.seq = t.lastseq " . "LEFT OUTER JOIN list_options AS s ON s.list_id = 'apptstat' AND s.option_id = q.status " ; } $query = "SELECT " . "e.pc_eventDate, e.pc_endDate, e.pc_startTime, e.pc_endTime, e.pc_duration, e.pc_recurrtype, e.pc_recurrspec, e.pc_recurrfreq, e.pc_catid, e.pc_eid, " . "e.pc_title, e.pc_hometext, e.pc_apptstatus, " . "p.fname, p.mname, p.lname, p.pid, p.pubpid, p.phone_home, p.phone_cell, " . "u.fname AS ufname, u.mname AS umname, u.lname AS ulname, u.id AS uprovider_id, " . "$tracker_fields" . "c.pc_catname, c.pc_catid " . "FROM openemr_postcalendar_events AS e " . "$tracker_joins" . "LEFT OUTER JOIN patient_data AS p ON p.pid = e.pc_pid " . "LEFT OUTER JOIN users AS u ON u.id = e.pc_aid " . "LEFT OUTER JOIN openemr_postcalendar_categories AS c ON c.pc_catid = e.pc_catid " . "WHERE $where " . "ORDER BY $order_by"; $res = sqlStatement( $query ); $events = array(); if ( $res ) { while ( $row = sqlFetchArray($res) ) { // if it's a repeating appointment, fetch all occurances in date range if ( $row['pc_recurrtype'] ) { $reccuringEvents = getRecurringEvents( $row, $from_date, $to_date ); $events = array_merge( $events, $reccuringEvents ); } else { $events []= $row; } } } return $events; }