/**
  * Check a filter for a match
  *
  * @param \Gems\Agenda\Gems_Agenda_Appointment $appointment
  * @return boolean
  */
 public function matchAppointment(\Gems_Agenda_Appointment $appointment)
 {
     if (true !== $this->_activities) {
         if (!isset($this->_activities[$appointment->getActivityId()])) {
             return false;
         }
     }
     return isset($this->_procedures[$appointment->getProcedureId()]) || true === $this->_procedures;
 }
 /**
  * Get the field value from an appointment object
  *
  * @param \Gems_Agenda_Appointment $appointment
  * @param string $field
  * @return mixed
  */
 public function getAppointmentFieldVale(\Gems_Agenda_Appointment $appointment, $field)
 {
     switch ($field) {
         case 'gap_id_organization':
             return $appointment->getOrganizationId();
         case 'gap_source':
             return $appointment->getSource();
         case 'gap_id_attended_by':
             return $appointment->getAttendedById();
         case 'gap_id_referred_by':
             return $appointment->getReferredById();
         case 'gap_id_activity':
             return $appointment->getActivityId();
         case 'gap_id_procedure':
             return $appointment->getProcedureId();
         case 'gap_id_location':
             return $appointment->getLocationId();
         case 'gap_subject':
             return $appointment->getSubject();
     }
 }