Files
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

93 lines
3.0 KiB
PHP

<?php
namespace App\Http\Controllers\ProntoAtendimento\Atendimento;
use App\Enums\Cadastro\SujeitoAtencao\Classificacao;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\Parametrizacao\ParametrizacaoPermissaoUsuario;
use App\Models\Cadastro\SujeitoAtencao\PacienteClassificacao;
use App\Services\ProntoAtendimento\Atendimento\RetroativoService;
use Illuminate\Http\Response;
class RetroativoController extends Controller
{
protected $modulo = 'pronto-atendimento';
protected $funcionalidade = 'atendimento-retroativo';
public function create()
{
$this->auth(__FUNCTION__);
$pacienteHasAtendimento = RetroativoService::pacienteHasAtendimento(request()->paciente_id ?? null);
if($pacienteHasAtendimento != false) {
return response()->json($pacienteHasAtendimento, $pacienteHasAtendimento['response']);
}
return response()->json(RetroativoService::create(), Response::HTTP_OK);
}
public function index()
{
$lotacao = $this->getCurrentLotacao();
$permissaoUsuario = ParametrizacaoPermissaoUsuario::where('usuario_id', $lotacao->usuario_id)
->where('infraestrutura_id', $lotacao->infraestrutura_id)
->first();
$countUsuario = ParametrizacaoPermissaoUsuario::count();
$classificacoes = $permissaoUsuario
? PacienteClassificacao::orderBy('descricao')
->get()
->filter(function ($classificacao) use ($permissaoUsuario) {
$exibe = false;
switch ($classificacao->id) {
case Classificacao::MUNICIPE:
$exibe = $permissaoUsuario->municipe;
break;
case Classificacao::PROVISORIO:
$exibe = $permissaoUsuario->provisorio;
break;
case Classificacao::OUTRO_MUNICIPIO:
$exibe = $permissaoUsuario->outro_municipio;
break;
}
return $exibe ? [
'id' => $classificacao->id,
'descricao' => $classificacao->descricao
] : null;
})
->values()
: [];
return response()->json(
[
'classificacoes' => $classificacoes,
'is_permissao_cadastro' => $countUsuario === 0 ? true : false,
],
Response::HTTP_OK
);
}
public function store()
{
$this->auth(__FUNCTION__);
$pacienteHasAtendimento = RetroativoService::pacienteHasAtendimento(request()->get('paciente')['id'] ?? null);
if($pacienteHasAtendimento != false) {
return response()->json($pacienteHasAtendimento, $pacienteHasAtendimento['response']);
}
return response()->json(RetroativoService::store(), Response::HTTP_CREATED);
}
}