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 ]), ]; } }