Files
rkm-conectasus-ci-sandbox/api/app/Http/Controllers/Impressao/ProntoAtendimento/Aih/TermoResponsabilidadeController.php
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

59 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers\Impressao\ProntoAtendimento\Aih;
use App\Enums\Cadastro\SujeitoAtencao\PreferenciaNome;
use App\Http\Controllers\Controller;
use App\Models\ProntoAtendimento\Aih\Internacao;
use App\Utils\Exports\Pdf;
use App\Utils\Exports\Template;
use App\Utils\MaskUtil;
use Carbon\Carbon;
class TermoResponsabilidadeController extends Controller
{
private const TITLE = 'TERMO DE RESPONSABILIDADE PARA PROCEDIMENTO MÉDICO';
private const TEMPLATE = 'pronto-atendimento.aih.termo-responsabilidade';
public static function getTemplate($id)
{
$internacao = Internacao::findOrFail($id);
$data = [
'paciente' => [
'nome' => $internacao->paciente->cidadao->nome,
'nome_social' => $internacao->paciente->cidadao->nome_social,
'prefere_nome_social' => $internacao->paciente->cidadao
->preferencia_nome_id === PreferenciaNome::NOME_SOCIAL,
'data_nascimento' => $internacao->paciente->cidadao->data_nascimento
? $internacao->paciente->cidadao->data_nascimento->format('d/m/Y')
: '',
'idade' => $internacao->paciente->cidadao->data_nascimento
? "{$internacao->paciente->cidadao->idade['anos']} ano(s) "
. "{$internacao->paciente->cidadao->idade['meses']} mês(s) "
. "{$internacao->paciente->cidadao->idade['dias']} dia(s) "
: '',
'cns' => MaskUtil::getCnsMasked($internacao->paciente->cidadao->cns),
'rg' => $internacao->paciente->cidadao->carteiraIdentidade->numero ?? '',
'cpf' => MaskUtil::getCpfMasked($internacao->paciente->cidadao->cpf),
'nome_mae' => $internacao->paciente->cidadao->nome_mae,
'endereco' => $internacao->paciente->cidadao->domicilio
? "{$internacao->paciente->cidadao->domicilio->endereco->completo}, "
. MaskUtil::getCepMasked($internacao->paciente->cidadao->domicilio->endereco->logradouro->cep)
: '',
],
'internacao' => [
'unidade' => $internacao->unidadeInternacao->nome_fantasia
],
'horaAtual' => Carbon::now()->format('H:i')
];
return Template::make(self::TITLE, self::TEMPLATE)->withData($data)->getHtml();
}
public function __invoke($id)
{
return (new Pdf)->stream(self::getTemplate($id), self::TITLE);
}
}