93 lines
3.0 KiB
PHP
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);
|
|
}
|
|
|
|
}
|