57 lines
1.9 KiB
PHP
57 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Impressao\ProntoAtendimento\AtendimentoMedico;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Cadastro\SujeitoAtencao\Lotacao;
|
|
use App\Models\ProntoAtendimento\Atendimento\Medico\AtendimentoMedico;
|
|
use App\Utils\Exports\Pdf;
|
|
use App\Utils\Exports\Template;
|
|
use Carbon\Carbon;
|
|
|
|
class OrientacoesController extends Controller
|
|
{
|
|
private const TITLE = 'Orientações ao paciente';
|
|
private const TEMPLATE = 'pronto-atendimento.atendimento-medico.orientacoes-medicas';
|
|
|
|
public static function getTemplate($atendimentoId = null)
|
|
{
|
|
if ($atendimentoId) {
|
|
|
|
$atendimentoMedico = AtendimentoMedico::orderByDesc('created_at')
|
|
->where('atendimento_id', $atendimentoId)
|
|
->whereNotNull('orientacoes')
|
|
->firstOrFail();
|
|
|
|
$data = [
|
|
'orientacoes' => $atendimentoMedico->orientacoes,
|
|
'dataHora' => $atendimentoMedico->updated_at->format('d/m/Y H:i:s'),
|
|
'profissional' => [
|
|
'nome' => $atendimentoMedico->updatedLotacao->usuario->cidadao->nome,
|
|
'cbo' => $atendimentoMedico->updatedLotacao->ocupacao->nome,
|
|
]
|
|
];
|
|
}
|
|
else {
|
|
|
|
$lotacao = Lotacao::findOrFail(auth()->payload()->get('lotacao_id'));
|
|
|
|
$data = [
|
|
'orientacoes' => request()->orientacoes,
|
|
'dataHora' => Carbon::now()->format('d/m/Y H:i:s'),
|
|
'profissional' => [
|
|
'nome' => $lotacao->usuario->cidadao->nome,
|
|
'cbo' => $lotacao->ocupacao->nome,
|
|
]
|
|
];
|
|
}
|
|
|
|
return Template::make(self::TITLE, self::TEMPLATE)->withData($data)->getHtml();
|
|
}
|
|
|
|
public function __invoke($atendimentoId = null)
|
|
{
|
|
return (new Pdf)->stream(self::getTemplate($atendimentoId), 'orientacoes');
|
|
}
|
|
}
|