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