Files
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

47 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers\Impressao\ProntoAtendimento\AtendimentoMedico;
use App\Http\Controllers\Controller;
use App\Models\ProntoAtendimento\Atendimento\Medico\AtendimentoMedico;
use App\Utils\Exports\Pdf;
use App\Utils\Exports\Template;
class EvolucaoController extends Controller
{
private const TITLE = 'Evolução médica';
private const TEMPLATE = 'pronto-atendimento.atendimento-medico.evolucao-medica';
public static function getTemplate(int $atendimentoMedicoId, bool $onlyContent = false)
{
$atendimentoMedico = AtendimentoMedico::findOrFail($atendimentoMedicoId);
$evolucoes = [];
$atendimentoMedico->atendimento->atendimentosMedico()
->whereNotNull('evolucao')
->orderByDesc('created_at')
->get()
->each(function ($atendimentoMedico) use (&$evolucoes) {
$evolucoes[] = [
'dataHora' => $atendimentoMedico->created_at->format('d/m/Y H:i:s'),
'profissional' => [
'nome' => $atendimentoMedico->createdLotacao->usuario->cidadao->nome,
'cbo' => $atendimentoMedico->createdLotacao->ocupacao->nome,
],
'evolucao' => $atendimentoMedico->evolucao
];
});
$template = $onlyContent ? self::TEMPLATE . '-conteudo' : self::TEMPLATE;
return Template::make(self::TITLE, $template)->withData(compact('evolucoes'))->getHtml();
}
public function __invoke(int $atendimentoMedicoId)
{
return (new Pdf)->stream(self::getTemplate($atendimentoMedicoId), self::TITLE);
}
}