public function search($term)
{
$search_terms = $this->parseTerm($term);
$model = new Patient();
$model->hos_num = $search_terms['hos_num'];
$model->nhs_num = $search_terms['nhs_num'];
// Get the valuse from URL
$currentPage = Yii::app()->request->getParam('Patient_page');
$pageSize = Yii::app()->request->getParam('pageSize', 20);
// if no GET param we try to fetch the value from the $criteria, default value 0 is none of them set
$sortDir = Yii::app()->request->getParam('sort_dir', 0);
$sortDir = $sortDir == 0 || $sortDir == 'asc' ? 'asc' : 'desc';
$sortBy = Yii::app()->request->getParam('sort_by');
switch ($sortBy) {
case 0:
$sortBy = 'hos_num*1';
break;
case 1:
$sortBy = 'title';
break;
case 2:
$sortBy = 'first_name';
break;
case 3:
$sortBy = 'last_name';
break;
case 4:
$sortBy = 'dob';
break;
case 5:
$sortBy = 'gender';
break;
case 6:
$sortBy = 'nhs_num*1';
break;
default:
$sortBy = 'hos_num*1';
}
$patientCriteria = array('pageSize' => $pageSize, 'sortBy' => $sortBy, 'sortDir' => $sortDir, 'currentPage' => $currentPage, 'first_name' => CHtml::decode($search_terms['first_name']), 'last_name' => CHtml::decode($search_terms['last_name']));
$dataProvider = $model->search($patientCriteria);
return $dataProvider;
}
public function actionSearch() { $term = trim(\Yii::app()->request->getParam('term', '')); $result = array(); $patientSearch = new PatientSearch(); if ($patientSearch->isValidSearchTerm($term)) { $dataProvider = $patientSearch->search($term); foreach ($dataProvider->getData() as $patient) { // check if the patient is already in the Request List $warning = ''; $isInList = $this->isPatientInRequestList($patient->id); if ($isInList) { $warning = "This patient is already requested for merge as {$isInList} patient."; } $result[] = array('id' => $patient->id, 'first_name' => $patient->first_name, 'last_name' => $patient->last_name, 'age' => $patient->isDeceased() ? 'Deceased' : $patient->getAge(), 'gender' => $patient->getGenderString(), 'genderletter' => $patient->gender, 'dob' => $patient->dob ? $patient->NHSDate('dob') : 'Unknown', 'hos_num' => $patient->hos_num, 'nhsnum' => $patient->nhsnum, 'all-episodes' => $this->getEpisodesHTML($patient), 'warning' => $warning); } } echo CJavaScript::jsonEncode($result); Yii::app()->end(); }