This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Mobile\ConectaCidadao\PerfilCidadao;
|
||||
|
||||
use App\Services\Service;
|
||||
use App\Models\Cadastro\SujeitoAtencao\Paciente;
|
||||
|
||||
class PerfilCidadaoService extends Service
|
||||
{
|
||||
public function getDadosCidadao(Paciente $paciente): array
|
||||
{
|
||||
$cidadao = $paciente->cidadao;
|
||||
|
||||
$telefones = $cidadao->telefones->map(function ($telefone) {
|
||||
return [
|
||||
'numero' => $telefone->numero,
|
||||
'principal' => (bool) $telefone->principal,
|
||||
'autoriza_sms' => (bool) $telefone->autoriza_sms,
|
||||
];
|
||||
})->values();
|
||||
|
||||
$endereco = null;
|
||||
$domicilio = $cidadao->domicilio;
|
||||
|
||||
if ($domicilio && $domicilio->endereco) {
|
||||
$end = $domicilio->endereco;
|
||||
$logradouro = $end->logradouro;
|
||||
|
||||
$endereco = [
|
||||
'logradouro' => $logradouro ? $logradouro->nome : null,
|
||||
'tipo_logradouro' => ($logradouro && $logradouro->tipo) ? $logradouro->tipo->descricao : null,
|
||||
'cep' => $logradouro ? $logradouro->cep : null,
|
||||
'numero' => $end->numero ?? null,
|
||||
'complemento' => $end->complemento ?? null,
|
||||
'referencia' => $end->referencia ?? null,
|
||||
'bairro' => ($logradouro && $logradouro->bairro) ? $logradouro->bairro->nome : null,
|
||||
'municipio' => ($logradouro && $logradouro->municipio) ? $logradouro->municipio->nome : null,
|
||||
'uf' => ($logradouro && $logradouro->municipio && $logradouro->municipio->estado) ? $logradouro->municipio->estado->uf : null,
|
||||
];
|
||||
}
|
||||
|
||||
$cns = $cidadao->cns;
|
||||
$nome = $cidadao->nome_social ? $cidadao->nome_social : $cidadao->nome;
|
||||
|
||||
$unidade = $paciente->unidade;
|
||||
|
||||
return [
|
||||
'paciente_id' => $paciente->id,
|
||||
'prontuario' => $paciente->prontuario,
|
||||
'nome' => $nome,
|
||||
'nome_completo' => $cidadao->nome,
|
||||
'nome_social' => $cidadao->nome_social ?? null,
|
||||
'cpf' => $cidadao->cpf,
|
||||
'cns' => $cns,
|
||||
'data_nascimento' => $cidadao->data_nascimento,
|
||||
'idade' => $cidadao->idade_formatada,
|
||||
'sexo' => ($cidadao->sexo) ? $cidadao->sexo->descricao : null,
|
||||
'email' => $paciente->email ?? null,
|
||||
'telefones' => $telefones,
|
||||
'endereco' => $endereco,
|
||||
'unidade_referencia' => $unidade ? [
|
||||
'id' => $unidade->id,
|
||||
'nome' => $unidade->nome_fantasia,
|
||||
'cnes' => $unidade->cnes,
|
||||
] : null,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user