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