self::getRaatIdentificacao($atendimentoMedico->atendimento->faa->raat), 'parecer_medico' => self::getParecerMedico($atendimentoMedico->raatParecerMedico), ]; } public static function getOptionsParecerMedico() { return [ 'agente' => Agente::all(), 'causa_acidente' => CausaAcidente::all(), 'classificacao_inicial' => ClassificacaoInicial::all(), 'diagnostico' => Diagnostico::all(), 'parte_corpo_atingida' => ParteCorpoAtingida::all(), 'regime_trabalho' => RegimeTrabalho::all(), 'tipo_acidente' => TipoAcidente::all(), ]; } private static function getRaatIdentificacao($raat) { if (is_null($raat)) { return null; } $hiddenFields = []; if ($raat->regime_trabalho_id !== RegimeTrabalhoEnum::OUTRO) { $hiddenFields[] ='regime_trabalho_outro'; } return $raat->makeHidden($hiddenFields); } private static function getParecerMedico($parecerMedico) { if (is_null($parecerMedico)) { return null; } $hiddenFields = []; if (!$parecerMedico->partesCorpoAtingidas->contains('id', ParteCorpoAtingidaEnum::OUTROS)) { $hiddenFields[] = 'parte_corpo_atingida_outras'; } if (!$parecerMedico->diagnosticos->contains('id', DiagnosticoEnum::OUTROS)) { $hiddenFields[] = 'diagnostico_outros'; } return $parecerMedico ->with('causasAcidente', 'diagnosticos', 'partesCorpoAtingidas') ->get() ->makeHidden($hiddenFields); } }