69 lines
2.7 KiB
PHP
69 lines
2.7 KiB
PHP
<?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,
|
|
];
|
|
}
|
|
}
|