/** * Perform any translations necessary for the code to work * * @param mixed $row array or \Traversable row * @param scalar $key * @return mixed Row array or false when errors occurred */ public function translateRowValues($row, $key) { $row = parent::translateRowValues($row, $key); if (!$row) { return false; } // Set fixed values for import $row['gap_source'] = 'import'; $row['gap_manual_edit'] = 0; if (!isset($row['gap_id_user'])) { if (isset($row['gr2o_patient_nr'], $row[$this->orgIdField])) { $sql = 'SELECT gr2o_id_user FROM gems__respondent2org WHERE gr2o_patient_nr = ? AND gr2o_id_organization = ?'; $id = $this->db->fetchOne($sql, array($row['gr2o_patient_nr'], $row[$this->orgIdField])); if ($id) { $row['gap_id_user'] = $id; } } if (!isset($row['gap_id_user'])) { // No user no import if still not set return false; } } if (isset($row['gap_admission_time'], $row['gap_discharge_time']) && $row['gap_admission_time'] instanceof \MUtil_Date && $row['gap_discharge_time'] instanceof \MUtil_Date) { if ($row['gap_discharge_time']->diffDays($row['gap_admission_time']) > 366) { if ($row['gap_discharge_time']->diffDays() > 366) { $row['gap_discharge_time'] = null; } } } $skip = false; if (isset($row['gas_name_attended_by'])) { $row['gap_id_attended_by'] = $this->_agenda->matchHealthcareStaff($row['gas_name_attended_by'], $row[$this->orgIdField]); $skip = $skip || false === $row['gap_id_attended_by']; } if (isset($row['gas_name_referred_by'])) { $row['gap_id_referred_by'] = $this->_agenda->matchHealthcareStaff($row['gas_name_referred_by'], $row[$this->orgIdField]); $skip = $skip || false === $row['gap_id_referred_by']; } if (isset($row['gaa_name'])) { $row['gap_id_activity'] = $this->_agenda->matchActivity($row['gaa_name'], $row[$this->orgIdField]); $skip = $skip || false === $row['gap_id_activity']; } if (isset($row['gapr_name'])) { $row['gap_id_procedure'] = $this->_agenda->matchProcedure($row['gapr_name'], $row[$this->orgIdField]); $skip = $skip || false === $row['gap_id_procedure']; } if (isset($row['glo_name'])) { $location = $this->_agenda->matchLocation($row['glo_name'], $row[$this->orgIdField]); $row['gap_id_location'] = $location['glo_id_location']; $skip = $skip || $location['glo_filter']; } if ($skip) { return null; } // \MUtil_Echo::track($row); return $row; }
/** * Add organization id and gul_user_class when needed * * @param mixed $row array or \Traversable row * @param scalar $key * @return mixed Row array or false when errors occurred */ public function translateRowValues($row, $key) { $row = parent::translateRowValues($row, $key); if (!$row) { return false; } if (!isset($row['gsf_id_organization'])) { $row['gsf_id_organization'] = $this->_organization->getId(); if (!isset($row['gul_user_class'])) { $row['gul_user_class'] = $this->_organization->get('gor_user_class'); } } elseif (!isset($row['gul_user_class'])) { $row['gul_user_class'] = $this->loader->getUserLoader()->getOrganization($row['gsf_id_organization'])->get('gor_user_class'); } return $row; }
/** * Perform any translations necessary for the code to work * * @param mixed $row array or \Traversable row * @param scalar $key * @return mixed Row array or false when errors occurred */ public function translateRowValues($row, $key) { $row = parent::translateRowValues($row, $key); if (!$row) { return false; } if (!isset($row['grs_id_user']) && isset($row['gr2o_patient_nr'], $row['gr2o_id_organization'])) { $sql = 'SELECT gr2o_id_user FROM gems__respondent2org WHERE gr2o_patient_nr = ? AND gr2o_id_organization = ?'; $id = $this->db->fetchOne($sql, array($row['gr2o_patient_nr'], $row['gr2o_id_organization'])); if ($id) { $row['grs_id_user'] = $id; $row['gr2o_id_user'] = $id; } } if (!isset($row['grs_email'])) { $row['calc_email'] = 1; } return $row; }