/** * Refresh the data */ public function refresh() { $default = true; $filter = array(); if ($this->patientId) { $filter['gr2o_patient_nr'] = $this->patientId; $default = false; } elseif ($this->respondentId) { $filter['gr2o_id_user'] = $this->respondentId; $default = false; } if (!$filter) { // Otherwise we load the first patient in the current organization $filter[] = '1=0'; } if ($this->organizationId) { $filter['gr2o_id_organization'] = $this->organizationId; } $this->model->setFilter($filter); $this->_gemsData = $this->model->loadFirst(); if ($this->_gemsData) { $this->exists = true; $this->patientId = $this->_gemsData['gr2o_patient_nr']; $this->organizationId = $this->_gemsData['gr2o_id_organization']; $this->respondentId = $this->_gemsData['gr2o_id_user']; } else { $this->_gemsData = $this->model->loadNew(); $this->exists = false; } }
/** * - Fetches respondent based on bsn / reception code and patient nr * - Creates the respondent if it does not exist, updates otherwise * * @see \Gems_Model_RespondentModel * @see \Gems_Communication_RespondentWriter::writeRespondent() * * @param \Gems_Communication_RespondentContainer $respondent * @param int $userId * @return boolean True if a new respondent was added, false if one was updated */ public function writeRespondent(\Gems_Communication_RespondentContainer $respondent, &$userId) { $parameters = $this->_model->applyParameters(array('grs_ssn' => $respondent->getBsn(), 'gr2o_reception_code' => \GemsEscort::RECEPTION_OK, 'gr2o_patient_nr' => $respondent->getPatientId())); $data = $this->_model->loadFirst(); $isNew = false; if (empty($data)) { $isNew = true; $data = $this->_model->loadNew(); } unset($data['grs_email']); $data['gr2o_patient_nr'] = $respondent->getPatientId(); $data['grs_first_name'] = $respondent->getFirstName(); $data['grs_last_name'] = $respondent->getLastName(); $data['grs_surname_prefix'] = $respondent->getSurnamePrefix(); $data['grs_ssn'] = $respondent->getBsn(); $data['grs_gender'] = $respondent->getGender(); $data['grs_birthday'] = $respondent->getBirthday(); $data = $this->_model->save($data); $userId = $data['grs_id_user']; return $isNew; }