/**
  * testing method return array type
  */
 public function testTypeFunction()
 {
     $model = new PatientForm();
     $this->assertInternalType('array', $model->rules());
     $this->assertInternalType('array', $model->attributeLabels());
     $dateTrue = "06/07/2016";
     $dateFalse = "06-07-2016";
     $this->assertTrue($model->dateFormat($dateTrue));
     $this->assertFalse($model->dateFormat($dateFalse));
     $this->assertFalse($model->dateFormat("32/20/16547"));
     $this->assertInternalType('array', $model->getGenre());
     $this->assertInternalType('array', $model->getSource());
 }
 public function actionAffichepatient()
 {
     $model = new PatientForm();
     $patient = (object) null;
     if (isset($_SESSION['datapatient'])) {
         $patient = $_SESSION['datapatient'];
         $model->copyPatient($patient);
     }
     if (isset($_POST['PatientForm'])) {
         $actionForm = $_POST['PatientForm']['action'];
         $model = new PatientForm();
         $model->attributes = $_POST['PatientForm'];
         if ($_POST['PatientForm']['prenom'] == "" || $_POST['PatientForm']['nom_naissance'] == "" || $_POST['PatientForm']['date_naissance'] == "") {
             Yii::app()->user->setFlash(TbAlert::TYPE_ERROR, Yii::t('common', 'missingFields'));
             $this->redirect(array('site/patient'));
         }
         if ($model->dateFormat($model->date_naissance) == false) {
             Yii::app()->user->setFlash('error', Yii::t('common', 'unvalidDate'));
             $this->redirect(array('site/patient'));
         }
         $patient->id = null;
         $patient->source = null;
         //à identifier en fonction de l'app
         $patient->sourceId = null;
         $patient->birthName = $model->nom_naissance;
         if ($model->nom != "") {
             $patient->useName = $model->nom;
         } else {
             $patient->useName = null;
         }
         $patient->firstName = $model->prenom;
         $patient->birthDate = $model->date_naissance;
         if ($model->sexe != "") {
             $patient->sex = $model->sexe;
         } else {
             $patient->sex = null;
         }
         if ($actionForm == 'create') {
             $patient->source = $model->source == "1" ? "1" : "2";
             $patientest = CommonTools::wsGetPatient($patient);
             if ($patientest == 'NoPatient') {
                 $patient = CommonTools::wsAddPatient($patient);
             } else {
                 $patient = $patientTest;
             }
         } else {
             $patient = CommonTools::wsGetPatient($patient);
         }
     }
     switch ($patient) {
         case "NoPatient":
             Yii::app()->user->setFlash(TbAlert::TYPE_ERROR, Yii::t('common', 'noPatient'));
             Yii::app()->user->setState('patientModel', $model);
             $model->scenario = 'create';
             $this->render('patient_bis', array('model' => $model, 'actionForm' => 'create'));
             exit;
             break;
         case "PatientNotSaved":
             Yii::app()->user->setFlash(TbAlert::TYPE_ERROR, Yii::t('common', 'patientNotSaved'));
             Yii::app()->user->setState('patientModel', $model);
             $model->scenario = 'create';
             $this->render('patient_bis', array('model' => $model, 'actionForm' => 'create'));
             exit;
             break;
         case "ManyPatient":
             Yii::app()->user->setFlash(TbAlert::TYPE_ERROR, Yii::t('common', 'manyPatient'));
             Yii::app()->user->setState('patientModel', $model);
             $this->render('patient_bis', array('model' => $model, 'actionForm' => 'search'));
             exit;
             break;
         default:
     }
     if ($model->validate() && isset($patient->id)) {
         $model->id = $patient->id;
         $criteria = new EMongoCriteria();
         $criteria->id_patient = (string) $model->id;
         $criteriaCliniques = new EMongoCriteria($criteria);
         if (Yii::app()->user->getState('activeProfil') == "clinicien") {
             $criteriaCliniques->login = Yii::app()->user->id;
         }
         $criteriaCliniques->type = "clinique";
         $criteriaNeuropathologiques = new EMongoCriteria($criteria);
         $criteriaNeuropathologiques->type = "neuropathologique";
         $neuropath = Answer::model()->findAll($criteriaNeuropathologiques);
         $criteriaGenetiques = new EMongoCriteria($criteria);
         $criteriaGenetiques->type = "genetique";
         $genetique = Answer::model()->findAll($criteriaGenetiques);
         $dataProviderCliniques = new EMongoDocumentDataProvider('Answer');
         $dataProviderCliniques->setId('dpCli');
         $dataProviderNeuropathologiques = new EMongoDocumentDataProvider('Answer');
         $dataProviderCliniques->setId('dpNeuPa');
         $dataProviderGenetiques = new EMongoDocumentDataProvider('Answer');
         $dataProviderCliniques->setId('dpGen');
         $dataProviderCliniques->setCriteria($criteriaCliniques);
         $dataProviderNeuropathologiques->setCriteria($criteriaNeuropathologiques);
         $dataProviderGenetiques->setCriteria($criteriaGenetiques);
         $questionnaire = Questionnaire::model()->findAll();
         $_SESSION['datapatient'] = $patient;
         if (isset($_SESSION['datapatient'])) {
             $this->render('affichepatient', array('model' => $model, 'dataProviderCliniques' => $dataProviderCliniques, 'dataProviderNeuropathologiques' => $dataProviderNeuropathologiques, 'dataProviderGenetiques' => $dataProviderGenetiques, 'questionnaire' => $questionnaire, 'patient' => $patient, 'neuropath' => $neuropath, 'genetique' => $genetique));
         } elseif (isset($_POST['PatientForm'])) {
             $this->render('affichepatient', array('model' => $model, 'dataProviderCliniques' => $dataProviderCliniques, 'dataProviderNeuropathologiques' => $dataProviderNeuropathologiques, 'dataProviderGenetiques' => $dataProviderGenetiques, 'patient' => $patient));
         } else {
             $this->redirect(array('site/patient'));
         }
     } else {
         $this->redirect(array('site/patient'));
     }
 }