96 lines
5.2 KiB
PHP
96 lines
5.2 KiB
PHP
<?php
|
|
|
|
namespace App\Services\AtencaoBasica\AtividadeColetiva;
|
|
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\AtividadeColetiva;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\AtividadeTipo;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\Participante;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\Profissional;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\Pse;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\PublicoAlvo;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\ReuniaoTema;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\SaudePratica;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\SaudeTema;
|
|
use App\Models\AtencaoBasica\AtividadeColetiva\Turno;
|
|
use App\Models\Cadastro\SujeitoAtencao\Paciente;
|
|
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 FichaAtividadeColetivaService extends Service
|
|
{
|
|
public static function index($id)
|
|
{
|
|
$cadastro = AtividadeColetiva::where('id', $id)-> first();
|
|
|
|
return [
|
|
'form' => [
|
|
'data_atual' => Carbon::now()->format('d/m/Y'),
|
|
|
|
],
|
|
'turnos' => Turno::orderBy('id')->get(),
|
|
'atividade_tipos' => AtividadeTipo::orderBy('id')->get(),
|
|
'reuniao_temas' => ReuniaoTema::orderBy('id')->get(),
|
|
'publico_alvo' => PublicoAlvo::orderBy('id')->get(),
|
|
'saude_temas' => SaudeTema::orderBy('id')->get(),
|
|
'saude_pratica' => SaudePratica::orderBy('id')->get(),
|
|
'pse' => Pse::orderBy('id')->get(),
|
|
'pse_id' => $cadastro->pse_id ?? null,
|
|
'cadastro' => [
|
|
'usuario' => [
|
|
'id' => $cadastro->usuario->id ?? null,
|
|
'cidadao_nome' => $cadastro->usuario->cidadao->nome ?? null,
|
|
'cns' => $cadastro->usuario->cidadao->cns ? MaskUtil::getCnsMasked($cadastro->usuario->cidadao->cns) : 'NÃO INFORMADO',
|
|
'cbo' => Ocupacao::findOrFail($cadastro->usuario_ocupacao_id)->codigo,
|
|
'cnes' => $cadastro->equipe->unidade->cnes ?? null,
|
|
],
|
|
'total_participantes' => $cadastro->total_participantes ?? null,
|
|
'avaliacoes_alteradas' => $cadastro->avaliacoes_alteradas ?? null,
|
|
'inep' => $cadastro->inep,
|
|
'cnes' => $cadastro->cnes,
|
|
'local_atividade' => $cadastro->local_atividade,
|
|
'equipe_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'),
|
|
'turno_id' => $cadastro->turno_id ?? null,
|
|
'atividade_tipo_id' => $cadastro->atividade_tipo_id ?? null,
|
|
'reuniao_temas' => isset($cadastro->reuniaoTemas) ? $cadastro->reuniaoTemas->pluck('id') : [],
|
|
'publico_alvo' => isset($cadastro->publicoAlvo) ? $cadastro->publicoAlvo->pluck('id') : [],
|
|
'saude_temas' => isset($cadastro->saudeTemas) ? $cadastro->saudeTemas->pluck('id') : [],
|
|
'saude_pratica' => isset($cadastro->saudePratica) ? $cadastro->saudePratica->pluck('id') : [],
|
|
'codigo_sigtap' => $cadastro->procedimentoColetivo->codigo_sigtap ?? null,
|
|
],
|
|
'profissional' => [
|
|
'cns' => $cadastro->usuario->cidadao->cns ? MaskUtil::getCnsMasked($cadastro->usuario->cidadao->cns) : 'NÃO INFORMADO',
|
|
'cbo' => Ocupacao::findOrFail($cadastro->usuario_ocupacao_id)->codigo,
|
|
],
|
|
'profissionais' => Profissional::where('atividade_coletiva_id', $cadastro->id)
|
|
->get()
|
|
->map(fn ($tipo) => [
|
|
'cns' => $tipo->usuario->cidadao->cns ? MaskUtil::getCnsMasked($tipo->usuario->cidadao->cns) : 'NÃO INFORMADO',
|
|
'cbo' => Ocupacao::findOrFail($tipo->usuario_ocupacao_id)->codigo,
|
|
]),
|
|
'participantes' => Participante::where('atividade_coletiva_id', $cadastro->id)
|
|
->get()
|
|
->map(fn ($tipo) => [
|
|
'id' => $tipo->paciente_id,
|
|
'nome' => $tipo->paciente->cidadao->nome,
|
|
'nome_social' => $tipo->paciente->cidadao->nome_social,
|
|
'cns' => $tipo->paciente->cidadao->cns ? MaskUtil::getCnsMasked($tipo->paciente->cidadao->cns) : 'NÃO INFORMADO',
|
|
'data_nascimento' => $tipo->paciente->cidadao->data_nascimento ? (new Carbon($tipo->paciente->cidadao->data_nascimento))->format('d/m/Y') : null,
|
|
'sexo' => $tipo->paciente->cidadao->sexo_id,
|
|
'avaliacao_alterada' => $tipo->avaliacao_alterada ?? false,
|
|
'peso' => $tipo->peso,
|
|
'altura' => $tipo->altura,
|
|
'parou_fumar' => $tipo->parou_de_fumar ?? false,
|
|
'abandonou_grupo' => $tipo->abandonou_grupo ?? false
|
|
]),
|
|
];
|
|
}
|
|
}
|