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