PatientSearch::search PHP Method

    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;
    }

Usage Example

 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();
 }
All Usage Examples Of PatientSearch::search