Exemplo n.º 1
0
 /**
  * Fusion de patients
  *
  * @param CPatient[] $objects Liste des patientsx
  * @param bool       $fast    Mode rapide
  *
  * @return string|null
  */
 function merge($objects = array(), $fast = false)
 {
     // Load the matching CDossierMedical objects
     if ($this->_id) {
         $merged_objects = array_merge($objects, array($this));
     } else {
         $merged_objects = $objects;
     }
     $where = array('object_class' => "='{$this->_class}'", 'object_id' => CSQLDataSource::prepareIn(CMbArray::pluck($merged_objects, 'patient_id')));
     $dossier_medical = new CDossierMedical();
     $list = $dossier_medical->loadList($where);
     foreach ($objects as $object) {
         $object->loadIPP();
     }
     if ($msg = parent::merge($objects, $fast)) {
         return $msg;
     }
     CPatientLink::deleteDoubloon();
     $this->store();
     // Merge them
     if (count($list) > 1) {
         $dossier_medical->mergePlainFields($list);
         $dossier_medical->object_class = $this->_class;
         $dossier_medical->object_id = $this->_id;
         return $dossier_medical->merge($list, $fast);
     }
     return null;
 }