This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
<?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
|
||||
]),
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user