This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -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') : [],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\AtencaoBasica\CadastroIndividual;
|
||||
|
||||
use App\Models\Cadastro\SujeitoAtencao\Paciente;
|
||||
use App\Models\Intranet\Cliente;
|
||||
use App\Services\Service;
|
||||
use App\Utils\MaskUtil;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class TermoRecusaCadastroService extends Service
|
||||
{
|
||||
public static function index($id)
|
||||
{
|
||||
$currentLotacao = self::getCurrentLotacao();
|
||||
$cliente = Cliente::where('link', app('config')->get('database.default'))->firstOrFail();
|
||||
$paciente = Paciente::findOrFail($id);
|
||||
|
||||
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,
|
||||
],
|
||||
],
|
||||
'nome' => $paciente->cidadao->nome ?? null,
|
||||
'nome_social' => $paciente->cidadao->nome_social ?? null,
|
||||
'cpf' => $paciente->cidadao->cpf ? MaskUtil::getCpfMasked($paciente->cidadao->cpf) : 'NÃO INFORMADO',
|
||||
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user