59 lines
2.5 KiB
PHP
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);
|
|
}
|
|
}
|