init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View File

@@ -0,0 +1,234 @@
<?php
namespace App\Services\AtencaoBasica\CadastroIndividual;
use App\Enums\AtencaoBasica\CadastroIndividual\OrientacaoSexual as CadastroIndividualOrientacaoSexual;
use App\Enums\Cadastro\SujeitoAtencao\RacaCor as SujeitoAtencaoRacaCor;
use App\Models\AtencaoBasica\CadastroIndividual\AcompanhamentoInfantil;
use App\Models\AtencaoBasica\CadastroIndividual\AlimentacaoDiaria;
use App\Models\AtencaoBasica\CadastroIndividual\CadastroIndividual;
use App\Models\AtencaoBasica\CadastroIndividual\Curso;
use App\Models\AtencaoBasica\CadastroIndividual\DoencaCardiaca;
use App\Models\AtencaoBasica\CadastroIndividual\DoencaRespiratoria;
use App\Models\AtencaoBasica\CadastroIndividual\HigienePessoal;
use App\Models\AtencaoBasica\CadastroIndividual\OrientacaoSexual;
use App\Models\AtencaoBasica\CadastroIndividual\OrigemAlimentacao;
use App\Models\AtencaoBasica\CadastroIndividual\Parentesco;
use App\Models\AtencaoBasica\CadastroIndividual\Peso;
use App\Models\AtencaoBasica\CadastroIndividual\ProblemasRins;
use App\Models\AtencaoBasica\CadastroIndividual\SaidaCidadao;
use App\Models\AtencaoBasica\CadastroIndividual\SituacaoMercadoTrabalho;
use App\Models\AtencaoBasica\CadastroIndividual\SituacaoRua;
use App\Models\Cadastro\SujeitoAtencao\DeficienciaBase;
use App\Models\Cadastro\SujeitoAtencao\IdentidadeGenero;
use App\Models\Cadastro\SujeitoAtencao\Nacionalidade;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Cadastro\SujeitoAtencao\RacaCor;
use App\Models\Intranet\Cliente;
use App\Models\Sigtap\Ocupacao;
use App\Services\Service;
use App\Utils\MaskUtil;
use Carbon\Carbon;
use Illuminate\Support\Str;
class FichaService extends Service
{
public static function index($id)
{
$currentLotacao = self::getCurrentLotacao();
$cliente = Cliente::where('link', app('config')->get('database.default'))->firstOrFail();
$cadastro = CadastroIndividual::where('paciente_id', $id)-> first();
$paciente = Paciente::findOrFail($id);
$telefoneCelular = $paciente->cidadao->telefones
->filter(fn ($t) => Str::length($t->numero) === 11)->first()->numero ?? null;
$ocupacao = null;
if (
isset($cadastro) &&
isset($cadastro->responsavelCidadao) &&
isset($cadastro->responsavelCidadao->paciente) &&
isset($cadastro->responsavelCidadao->paciente->cadastroIndividual) &&
isset($cadastro->responsavelCidadao->paciente->cadastroIndividual->ocupacao)
) {
$ocupacao = [
'id' => $cadastro->responsavelCidadao->paciente->cadastroIndividual->ocupacao->id,
'codigo' => $cadastro->responsavelCidadao->paciente->cadastroIndividual->ocupacao->codigo,
'nome' => $cadastro->responsavelCidadao->paciente->cadastroIndividual->ocupacao->nome,
];
}
return [
'form' => [
'data_atual' => Carbon::now()->format('d/m/Y'),
'unidade' => $currentLotacao->infraestrutura->unidade->nome_fantasia,
'unidade_id' => $currentLotacao->infraestrutura->unidade->id,
'infraestrutura_id' => $currentLotacao->infraestrutura->id,
'infraestrutura' => $currentLotacao->infraestrutura->nome,
'sistema' => [
'ramo_atividade' => [
'nome' => $cliente->sistema->ramoAtividade->nome ?? null,
],
'nome' => $cliente->sistema->nome ?? null,
'versao' => $cliente->sistema->versao ?? null,
],
'acompanhamento_infantil' => AcompanhamentoInfantil::orderBy('descricao')->get(),
'parentesco' => Parentesco::orderBy('descricao')->get(),
'curso' => Curso::orderBy('descricao')->get(),
'mercado_trabalho' => SituacaoMercadoTrabalho::orderBy('descricao')->get(),
'orientacao_sexual' => OrientacaoSexual::whereNotIn('id', [CadastroIndividualOrientacaoSexual::HOMOSSEXUAL])->orderBy('descricao')->get(),
'identidade_genero' => IdentidadeGenero::orderBy('descricao')->get(),
'deficiencia' => DeficienciaBase::orderBy('descricao')->get()->each(function ($item) {
$item->descricao = ucfirst(strtolower($item->descricao));
}),
'saida_cidadao' => SaidaCidadao::orderBy('descricao')->get(),
'peso' => Peso::orderBy('descricao')->get(),
'doencas_cardiacas' => DoencaCardiaca::orderBy('descricao')->get(),
'problemas_rins' => ProblemasRins::orderBy('descricao')->get(),
'doencas_respiratorias' => DoencaRespiratoria::orderBy('descricao')->get(),
'situacao_rua' => SituacaoRua::orderBy('descricao')->get(),
'alimentacao_diaria' => AlimentacaoDiaria::orderBy('descricao')->get(),
'origem_alimentacao' => OrigemAlimentacao::orderBy('descricao')->get(),
'higiene_pessoal' => HigienePessoal::orderBy('descricao')->get(),
'nacionalidades' => Nacionalidade::orderBy('descricao')->get(),
'raca_cor' => RacaCor::whereNotIn('id', [SujeitoAtencaoRacaCor::SEM_INFORMACAO])->orderBy('descricao')->get(),
],
'cadastro' => [
'usuario' => [
'id' => $cadastro->usuario->id ?? null,
'cidadao_nome' => $cadastro->usuario->cidadao->nome ?? null,
'cns' => optional(optional($cadastro->usuario)->cidadao)->cns
? MaskUtil::getCnsMasked($cadastro->usuario->cidadao->cns) : 'NÃO INFORMADO',
'cbo' => $cadastro->usuario ? Ocupacao::findOrFail($cadastro->usuario_ocupacao_id)->codigo : null,
],
'cnes' => $cadastro->equipe->unidade->cnes ?? null,
'numero_ine' => $cadastro->equipe->area->numero_ine ?? null,
'equipe_id' => $cadastro->equipe_id ?? null,
'ocupacao_id' => $cadastro->usuario_ocupacao_id ?? null,
'data_usuario_responsavel' => Carbon::parse($cadastro->data_usuario_responsavel)->format('d/m/Y'),
],
'alteracao' => [
'data_cadastro' => $cadastro ? $cadastro->created_at->format('d/m/Y') : null,
'data_alteracao' => $cadastro ? $cadastro->updated_at->format('d/m/Y') : null,
'usuario_alteracao' => $cadastro ? $cadastro->updatedLotacao()->withTrashed()->first()->usuario->cidadao->nome : null,
],
'cidadao' => [
'nome' => $paciente->cidadao->nome ?? null,
'nome_social' => $paciente->cidadao->nome_social ?? null,
'status_id' => $cadastro ? $cadastro->status_id : null,
'sexo_id' => $paciente->cidadao->sexo_id ?? null,
'cns' => $paciente ? MaskUtil::getCnsMasked($paciente->cidadao->cns) : null,
'cns_responsavel' => $cadastro->responsavelCidadao ? MaskUtil::getCnsMasked($cadastro->responsavelCidadao->cns) : null,
'data_nascimento' => $paciente->cidadao->data_nascimento->format('d/m/Y') ?? null,
'nacionalidade_id' => $paciente->cidadao->nacionalidade_id ?? null,
'responsavel_cidadao_id' => $cadastro ? $cadastro->responsavel_cidadao_id : null,
'ocupacao' => $ocupacao,
'renda_mensal' => $cadastro ? $cadastro->renda_mensal : null,
'unidade_area_sus' => $cadastro ? $cadastro->unidade_area_sus : null,
'ativo' => $cadastro ? $cadastro->ativo : null,
'nis_pis_pasep' => $paciente->cidadao->carteiraTrabalho->nis_pis_pasep ?? '',
'etnia_indigena' => $paciente->cidadao->etniaIndigena->descricao ?? '',
'nome_mae' => $paciente->cidadao->nome_mae ?? 'NÃO INFORMADO',
'nome_pai' => $paciente->cidadao->nome_pai ?? 'NÃO INFORMADO',
'pais_nascimento_nome' => $paciente->cidadao->paisNascimento->nome ?? null,
'portaria_naturalizacao' => $paciente->cidadao->portaria_naturalizacao ?? '',
'data_naturalizacao' => $paciente->cidadao->data_naturalizacao
? $paciente->cidadao->data_naturalizacao->format('d/m/Y') : null,
'data_entrada_brasil' => ($paciente->cidadao->estrangeiroEntradaBrasil->data_entrada ?? null)
? $paciente->cidadao->estrangeiroEntradaBrasil->data_entrada->format('d/m/Y') : null,
'municipio_nascimento' => $paciente->cidadao->municipioNascimento
? "{$paciente->cidadao->municipioNascimento->nome} / "
. $paciente->cidadao->municipioNascimento->estado->uf
: '',
'email' => $paciente->email ?? null,
'telefone_celular' => MaskUtil::getPhoneMasked($telefoneCelular),
'raca_cor_id' => $paciente->cidadao->raca_cor_id,
],
'informacao' => [
'parentesco_responsavel_id' => $cadastro ? $cadastro->parentesco_responsavel_id : null,
'ocupacao' => $cadastro && $cadastro->ocupacao ? $cadastro->ocupacao->codigo . ' - ' .$cadastro->ocupacao->nome : null,
'curso_id' => $cadastro ? $cadastro->curso_id : null,
'frequenta_escola_creche' => $cadastro ? $cadastro->frequenta_escola_creche : null,
'situacao_mercado_trabalho_id' => $cadastro ? $cadastro->situacao_mercado_trabalho_id : null,
'frequenta_cuidador_tradicional' => $cadastro ? $cadastro->frequenta_cuidador_tradicional : null,
'participa_grupo_comunitario' => $cadastro ? $cadastro->participa_grupo_comunitario : null,
'acompanhamento_infantil' => $cadastro ? $cadastro->acompanhamentoInfantil->pluck('id') : [],
'plano_saude' => $cadastro ? $cadastro->plano_saude : null,
'comunidade_tradicional' => $cadastro ? $cadastro->comunidade_tradicional : null,
'comunidade_tradicional_qual' => $cadastro && $cadastro->comunidade_tradicional
? $cadastro->comunidadeTradicionalQual->codigo_esus . ' - ' . $cadastro->comunidadeTradicionalQual->descricao
: null,
'orientacao_sexual' => $cadastro ? $cadastro->orientacao_sexual : null,
'orientacao_sexual_id' => $cadastro ? $cadastro->orientacao_sexual_id : null,
'identidade_genero' => $cadastro ? $cadastro->identidade_genero : null,
'identidade_genero_id' => $cadastro ? $cadastro->paciente->cidadao->identidade_genero_id : null,
'deficiente' => $cadastro ? $cadastro->deficiente : null,
'deficiencias' => $cadastro ? $cadastro->deficiencia->pluck('id') : [],
'saida_cidadao_id' => $cadastro ? $cadastro->saida_cidadao_id : null,
'motivo_saida_data' => $cadastro ? $cadastro->motivo_saida_data : null,
'obito' => $paciente->cidadao->obito ? true : false,
'obito_em' => $paciente->cidadao->obito ? (new Carbon($paciente->cidadao->obito->obito_em))->format('d/m/Y') : null,
'hora_obito' => $paciente->cidadao->obito ? (new Carbon($paciente->cidadao->obito->obito_em))->format('H:i:s') : null,
'obito_declaracao' => $paciente->cidadao->obito->declaracao ?? null,
'obito_causa' => $paciente->cidadao->obito->causa ?? null,
'obito_cid' => [
'id' => $paciente->cidadao->obito->cid->id ?? null,
'nome' => $paciente->cidadao->obito->cid->nome ?? null,
],
'data_entrada' => $paciente->cidadao->estrangeiroEntradaBrasil->data_entrada ?? null,
'data_naturalizacao' => $paciente->cidadao->data_naturalizacao ?? null,
],
'recusa_cadastro' => $cadastro ? $cadastro->recusa_cadastro : false,
'condicao' => [
'gestante' => $cadastro ? $cadastro->gestante : false,
'maternidade_referencia' => $cadastro ? $cadastro->maternidade_referencia : null,
'peso_id' => $cadastro ? $cadastro->peso_id : null,
'fumante' => $cadastro ? $cadastro->fumante : false,
'usa_alcool' => $cadastro ? $cadastro->usa_alcool : false,
'outras_drogas' => $cadastro ? $cadastro->outras_drogas : false,
'hipertensao' => $cadastro ? $cadastro->hipertensao : false,
'diabetes' => $cadastro ? $cadastro->diabetes : false,
'avc_derrame' => $cadastro ? $cadastro->avc_derrame : false,
'infarto' => $cadastro ? $cadastro->infarto : false,
'hanseniase' => $cadastro ? $cadastro->hanseniase : false,
'tuberculose' => $cadastro ? $cadastro->tuberculose : false,
'cancer' => $cadastro ? $cadastro->cancer : false,
'fibromialgia' => $cadastro ? $cadastro->fibromialgia : false,
'transtorno_espectro_autista' => $cadastro ? $cadastro->transtorno_espectro_autista : false,
'internacao' => $cadastro ? $cadastro->internacao : false,
'internacao_motivo' => $cadastro ? $cadastro->internacao_motivo : null,
'doenca_cardiaca' => $cadastro ? $cadastro->doenca_cardiaca : false,
'doenca_cardiaca_quais' => $cadastro ? $cadastro->doencaCardiaca->pluck('id') : [],
'problemas_rins' => $cadastro ? $cadastro->problemas_rins : false,
'problemas_rins_quais' => $cadastro ? $cadastro->problemasRins->pluck('id') : [],
'doenca_respiratoria' => $cadastro ? $cadastro->doenca_respiratoria : false,
'doenca_respiratoria_quais' => $cadastro ? $cadastro->doencaRespiratoria->pluck('id') : [],
'tratamento_saude_mental' => $cadastro ? $cadastro->tratamento_saude_mental : false,
'acamado' => $cadastro ? $cadastro->acamado : false,
'domiciliado' => $cadastro ? $cadastro->domiciliado : false,
'plantas_medicinais' => $cadastro ? $cadastro->plantas_medicinais : false,
'plantas_medicinais_quais' => $cadastro ? $cadastro->plantas_medicinais_quais : null,
'praticas_integrativas' => $cadastro ? $cadastro->praticas_integrativas : false,
'outras_condicoes_primaria' => $cadastro ? $cadastro->outras_condicoes_primaria : null,
'outras_condicoes_secundaria' => $cadastro ? $cadastro->outras_condicoes_secundaria : null,
'outras_condicoes_terciaria' => $cadastro ? $cadastro->outras_condicoes_terciaria : null,
],
'situacao_rua' => [
'situacao_rua_id' => $cadastro ? $cadastro->situacao_rua_id : null,
'outra_instituicao' => $cadastro ? $cadastro->outra_instituicao : false,
'outra_instituicao_quais' => $cadastro ? $cadastro->outra_instituicao_quais : null,
'recebe_beneficio' => $cadastro ? $cadastro->recebe_beneficio : false,
'referencia_familiar' => $cadastro ? $cadastro->referencia_familiar : false,
'visita_familiar' => $cadastro ? $cadastro->visita_familiar : false,
'parentesco' => $cadastro ? $cadastro->parentesco : null,
'alimentacao_diaria_id' => $cadastro ? $cadastro->alimentacao_diaria_id : null,
'origem_alimentacao' => $cadastro ? $cadastro->origemAlimentacao->pluck('id') : [],
'higiene_pessoal' => $cadastro ? $cadastro->higiene_pessoal : false,
'higiene_pessoal_quais' => $cadastro ? $cadastro->higienePessoal->pluck('id') : [],
],
];
}
}