prestador_interno_id) ? 'prestadorExterno' : 'prestadorInterno'; $solicitacao->itens->each(function ($item) use ($solicitacao, $prestadorRelationName, $itens) { if (!is_null(!is_null($item->exame_id))) { $solicitacao->{$prestadorRelationName}->exames() ->where('id', $item->exame_id) ->wherePivotNotNull('observacoes') ->get() ->each(fn ($exame) => $itens->push([ 'descricao' => empty($exame->codigo) ? $exame->nome : MaskUtil::getProcedimentoMasked($exame->codigo) . " - {$exame->nome}", 'observacoes' => $exame->pivotPrestadorExame->observacoes, ])); } if (!is_null($item->procedimento_cirurgico_id)) { $solicitacao->{$prestadorRelationName}->procedimentosCirurgicos() ->where('id', $item->procedimento_cirurgico_id) ->wherePivotNotNull('observacoes') ->get() ->each(fn ($procedimentoCirurgico) => $itens->push([ 'descricao' => MaskUtil::getProcedimentoMasked($procedimentoCirurgico->procedimento_codigo) . " - {$procedimentoCirurgico->nome}", 'observacoes' => $procedimentoCirurgico->pivotPrestadorProcedimentoCirurgico->observacoes, ])); } if (!is_null($item->especialidade_id)) { $solicitacao->{$prestadorRelationName}->especialidades() ->where('id', $item->especialidade_id) ->wherePivotNotNull('observacoes') ->get() ->each(fn ($especialidade) => $itens->push([ 'descricao' => "{$especialidade->ocupacao->codigo} - {$especialidade->nome}", 'observacoes' => $especialidade->pivotPrestadorEspecialidade->observacoes, ])); } }); $data = [ 'paciente' => [ 'nome' => $solicitacao->paciente->cidadao->nome, 'prontuario' => $solicitacao->paciente->prontuario, 'data_nascimento' => $solicitacao->paciente->cidadao->data_nascimento ? (new Carbon($solicitacao->paciente->cidadao->data_nascimento))->format('d/m/Y') : null, ], 'itens' => $itens->sortBy('descricao')->values(), ]; return Pdf1::generate(self::TITLE, self::TEMPLATE, $data); } }