The followings are the available columns in table 'patient_merge_request':
Inheritance: extends BaseActiveRecordVersioned
 /**
  * Check if the paient id is already in the request list.
  * 
  * @param int $patientId
  *
  * @return null|string 'primary' or 'secondary', this means, e.g.:  patient id was submited for merge as secondary patient
  */
 public function isPatientInRequestList($patientId)
 {
     $criteria = new CDbCriteria();
     $criteria->condition = 'secondary_id=:patient_id OR ( primary_id=:patient_id AND status = ' . PatientMergeRequest::STATUS_NOT_PROCESSED . ') AND deleted = 0';
     $criteria->params = array(':patient_id' => $patientId);
     $mergeRequest = PatientMergeRequest::model()->find($criteria);
     return $mergeRequest ? $mergeRequest->primary_id == $patientId ? 'primary' : 'secondary' : null;
 }
Exemplo n.º 2
0
 public function actionSearch()
 {
     $term = \Yii::app()->request->getParam('term', '');
     $patientSearch = new PatientSearch();
     $dataProvider = $patientSearch->search($term);
     $itemCount = $dataProvider->totalItemCount;
     $search_terms = $patientSearch->getSearchTerms();
     if ($itemCount == 0) {
         Audit::add('search', 'search-results', implode(',', $search_terms) . ' : No results');
         $message = 'Sorry, no results ';
         if ($search_terms['hos_num']) {
             $message .= 'for Hospital Number <strong>"' . $search_terms['hos_num'] . '"</strong>';
             // check if the record was merged into another record
             $criteria = new CDbCriteria();
             $criteria->compare('secondary_hos_num', $search_terms['hos_num']);
             $criteria->compare('status', PatientMergeRequest::STATUS_MERGED);
             $patientMergeRequest = PatientMergeRequest::model()->find($criteria);
             if ($patientMergeRequest) {
                 $message = 'Hospital Number <strong>' . $search_terms['hos_num'] . '</strong> was merged into <strong>' . $patientMergeRequest->primary_hos_num . '</strong>';
             }
         } elseif ($search_terms['nhs_num']) {
             $message .= 'for NHS Number <strong>"' . $search_terms['nhs_num'] . '"</strong>';
         } elseif ($search_terms['first_name'] && $search_terms['last_name']) {
             $message .= 'for Patient Name <strong>"' . $search_terms['first_name'] . ' ' . $search_terms['last_name'] . '"</strong>';
         } else {
             $message .= 'found for your search.';
         }
         Yii::app()->user->setFlash('warning.no-results', $message);
         $this->redirect(Yii::app()->homeUrl);
     } elseif ($itemCount == 1) {
         foreach ($dataProvider->getData() as $item) {
             $this->redirect(array('patient/view/' . $item->id));
         }
     } else {
         $this->renderPatientPanel = false;
         $this->render('results', array('data_provider' => $dataProvider, 'page_num' => \Yii::app()->request->getParam('Patient_page', 0), 'total_items' => $itemCount, 'term' => $term, 'search_terms' => $patientSearch->getSearchTerms(), 'sort_by' => (int) \Yii::app()->request->getParam('sort_by', null), 'sort_dir' => (int) \Yii::app()->request->getParam('sort_dir', null)));
     }
 }