/**
  * Test A28 - Create patient with full demographic data
  *
  * @param CCnStep $step Step
  *
  * @throws CMbException
  *
  * @return void
  */
 static function testA28(CCnStep $step)
 {
     // PDS-PAM_Identification_Mgt_Merge
     $patient = new CPatient();
     // Random sur les champs du patient
     $patient->random();
     $test = $step->_ref_test;
     $partner = $test->_ref_partner;
     // On sélectionne le nom du patient en fonction du partenaire, du test et de l'étape
     $patient->nom = "{$partner->name}_{$test->_id}_{$step->number}";
     self::storeObject($patient);
 }
 /**
  * Load patient PES
  *
  * @param CCnStep $step        Step
  * @param int     $step_number Step number
  *
  * @throws CMbException
  *
  * @return CPatient $patient
  */
 static function loadPatientPES(CCnStep $step, $step_number)
 {
     // PES-PAM_Encounter_Management_Basic
     $test = $step->_ref_test;
     $partner = $test->_ref_partner;
     $name = null;
     switch ($step_number) {
         case 10:
             $name = "ONE";
             break;
         case 20:
             $name = "TWO";
             break;
         case 30:
             $name = "THREE";
             break;
         case 40:
             $name = "FOUR";
             break;
         case 50:
             if ($step->number == 80) {
                 $name = "UPDATE";
             } else {
                 $name = "FIVE";
             }
             break;
     }
     $name = "PAM{$name}";
     $patient = new CPatient();
     $where = array();
     $where["nom"] = " = '{$name}_{$partner->name}_{$test->_id}'";
     $patient->loadObject($where);
     if (!$patient->_id) {
         $patient->random();
         $patient->nom = "{$name}_{$partner->name}_{$test->_id}";
         if ($msg = $patient->store()) {
             throw new CMbException($msg);
         }
     }
     return $patient;
 }