diff --git a/src/app/Http/Controllers/EvolucaoController.php b/src/app/Http/Controllers/EvolucaoController.php index c939833..90f5f24 100644 --- a/src/app/Http/Controllers/EvolucaoController.php +++ b/src/app/Http/Controllers/EvolucaoController.php @@ -6,6 +6,8 @@ use App\Http\Requests\EvolucaoRequest; use App\Model\Evolucao; use App\Model\Paciente; +use App\Model\Modelo; +use App\Model\Usuario; class EvolucaoController extends Controller { @@ -85,12 +87,20 @@ public function detalhes($id, $evo) public function nova($id) { + $usuario = Usuario::find(auth()->user()->id); + $medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico; + $modelos = $medico->selectModelos(); + + $valor = ''; + if(isset($_GET['modelo'])) + $valor = Modelo::find($_GET['modelo'])->conteudo; + $paciente = Paciente::find($id); if(!$paciente) return redirect('pacientes')->withErro('Paciente não encontrado'); - return view('pacientes.evolucao.criar', compact('paciente')); + return view('pacientes.evolucao.criar', compact('paciente', 'modelos', 'valor')); } public function salvar(EvolucaoRequest $requisicao, $id) diff --git a/src/app/Http/Controllers/ModeloController.php b/src/app/Http/Controllers/ModeloController.php new file mode 100644 index 0000000..37f0d59 --- /dev/null +++ b/src/app/Http/Controllers/ModeloController.php @@ -0,0 +1,65 @@ +user()->id); + $medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico; + + $select = []; + + foreach ($medico->modelos as $mol) { + $select[$mol->id] = $mol->titulo; + } + + $modelo = new Modelo; + + if(isset($_GET['modelo'])) { + $m = Modelo::find($_GET['modelo']); + + if($m) { + if($m->medico_id == $usuario->id) { + $modelo = $m; + } + } + } + + return view('modelos.lista', compact('medico', 'select', 'modelo')); + } + + public function novo(Request $r) { + $usuario = Usuario::find(auth()->user()->id); + $medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico; + + if($r->tipo == 'novo') { + Modelo::create($r->all() + [ 'medico_id' => $medico->usuario_id ]); + + return redirect('modelos')->withMsg('Modelo foi criado!'); + } + + $m = Modelo::find($r->modelo); + $m->fill($r->all()); + $m->save(); + + return redirect('modelos')->withMsg('Modelo foi editado!'); + + } + + public function manipular(Request $r) { + $usuario = Usuario::find(auth()->user()->id); + $medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico; + + if($r->acao == 'Apagar') { + Modelo::destroy($r->modelo); + return redirect('modelos')->withMsg('Modelo foi apagado!'); + } + + return redirect('modelos?modelo='.$r->modelo); + } +} diff --git a/src/app/Http/Controllers/ReceituarioController.php b/src/app/Http/Controllers/ReceituarioController.php index 744abc7..77db2f1 100644 --- a/src/app/Http/Controllers/ReceituarioController.php +++ b/src/app/Http/Controllers/ReceituarioController.php @@ -6,6 +6,8 @@ use App\Http\Requests\ReceituarioRequest; use App\Model\Receituario; use App\Model\Paciente; +use App\Model\Modelo; +use App\Model\Usuario; class ReceituarioController extends Controller { @@ -85,11 +87,18 @@ public function detalhes($id, $rec) public function novo($id) { $paciente = Paciente::find($id); + $usuario = Usuario::find(auth()->user()->id); + $medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico; + $modelos = $medico->selectModelos(); + + $valor = ''; + if(isset($_GET['modelo'])) + $valor = Modelo::find($_GET['modelo'])->conteudo; if(!$paciente) return redirect('pacientes')->withErro('Paciente não encontrado'); - return view('pacientes.receituario.criar', compact('paciente')); + return view('pacientes.receituario.criar', compact('paciente', 'modelos', 'valor')); } public function salvar(ReceituarioRequest $requisicao, $id) diff --git a/src/app/Model/Medico.php b/src/app/Model/Medico.php index a34bd00..de33646 100644 --- a/src/app/Model/Medico.php +++ b/src/app/Model/Medico.php @@ -37,6 +37,19 @@ public function ferias_() return $this->hasMany(Feria::class, 'medico_id', 'usuario_id'); } + public function modelos() + { + return $this->hasMany(Modelo::class, 'medico_id', 'usuario_id'); + } + + public function selectModelos() { + $retorno = []; + foreach ($this->modelos as $mo) { + $retorno[$mo->id] = $mo->titulo; + } + return $retorno; + } + public function consultas() { return $this->hasMany(Consulta::class, 'usuario_id', 'usuario_id'); diff --git a/src/app/Model/Modelo.php b/src/app/Model/Modelo.php new file mode 100644 index 0000000..eb4f241 --- /dev/null +++ b/src/app/Model/Modelo.php @@ -0,0 +1,21 @@ +belongsTo(Usuario::class, 'medico_id', 'usuario_id'); + } +} diff --git a/src/app/Model/NaoMedico.php b/src/app/Model/NaoMedico.php index 89efcc9..b254a28 100644 --- a/src/app/Model/NaoMedico.php +++ b/src/app/Model/NaoMedico.php @@ -29,6 +29,19 @@ public function carga_horaria() return $this->hasOne(CargaHoraria::class, 'medico_id', 'usuario_id'); } + public function modelos() + { + return $this->hasMany(Modelo::class, 'medico_id', 'usuario_id'); + } + + public function selectModelos() { + $retorno = []; + foreach ($this->modelos as $mo) { + $retorno[$mo->id] = $mo->titulo; + } + return $retorno; + } + public function dia() { return $this->hasOne(Dia::class, 'medico_id', 'usuario_id'); diff --git a/src/atualizar b/src/atualizar index efdb60a..0c01f70 100644 --- a/src/atualizar +++ b/src/atualizar @@ -1,4 +1,13 @@ ALTER TABLE `consultas` CHANGE COLUMN `status` `status` VARCHAR(250) NOT NULL COLLATE 'utf8mb4_unicode_ci' AFTER `obs`; - \ No newline at end of file + +CREATE TABLE IF NOT EXISTS `modelos` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `titulo` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `conteudo` text COLLATE utf8mb4_unicode_ci NOT NULL, + `medico_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `modelos_medico_id_foreign` (`medico_id`), + CONSTRAINT `modelos_medico_id_foreign` FOREIGN KEY (`medico_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/src/database/migrations/2017_09_30_220718_create_modelos_table.php b/src/database/migrations/2017_09_30_220718_create_modelos_table.php new file mode 100644 index 0000000..a62bae7 --- /dev/null +++ b/src/database/migrations/2017_09_30_220718_create_modelos_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('titulo'); + $table->text('conteudo'); + $table->integer('medico_id')->unsigned(); + + $table->foreign('medico_id') + ->references('id') + ->on('usuarios') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('modelos'); + } +} diff --git a/src/resources/views/layouts/app.blade.php b/src/resources/views/layouts/app.blade.php index ed3a9fd..a064df0 100644 --- a/src/resources/views/layouts/app.blade.php +++ b/src/resources/views/layouts/app.blade.php @@ -71,6 +71,7 @@
  • Finanças
  • Horários
  • Férias / Folgas
  • +
  • Modelos
  • @elseif(auth()->user()->secretario)
  • Pacientes
  • @@ -84,6 +85,7 @@
  • Finanças
  • Horários
  • Férias / Folgas
  • +
  • Modelos
  • @endif @endif diff --git a/src/resources/views/modelos/lista.blade.php b/src/resources/views/modelos/lista.blade.php new file mode 100644 index 0000000..ad8eff4 --- /dev/null +++ b/src/resources/views/modelos/lista.blade.php @@ -0,0 +1,80 @@ +@extends('layouts.app') + +@section('titulo', 'Seus modelos') + +@section('lateral') +@endsection + +@section('conteudo') +

    + @if(session('msg')) + + {{ session('msg') }} + + @endif + + @if(session('erro')) + + {{ session('erro') }} + + @endif +

    + + {{ Form::open(['url' => 'modelos/manipular', 'method' => 'post']) }} +
    +
    + {{ Form::label('modelo', 'Modelo') }} + {{ Form::select('modelo', $select, $modelo->id, + ['required' => ''] + ) }} + + + + +
    +
    + {{ Form::close() }} + + {{ Form::open(['url' => 'modelos', 'method' => 'post']) }} +
    + @if($modelo->id != null) + Editar modelo + @else + Novo modelo + @endif +
    + +
    + + @if($modelo->id != null) + + + @else + + @endif + +
    + {{ Form::label('titulo', 'Título (Apelido)') }} + {{ Form::text('titulo', $modelo->titulo, ['required' => '']) }} +
    + +
    + {{ Form::label('conteudo', 'Conteúdo') }} + {!! Form::textarea('conteudo', $modelo->conteudo, ['required' => '', 'placeholder' => 'Digite seu modelo'] ) !!} +
    +
    + + + {{ Form::close() }} + + +@endsection \ No newline at end of file diff --git a/src/resources/views/pacientes/evolucao/criar.blade.php b/src/resources/views/pacientes/evolucao/criar.blade.php index f58a4f6..85d581b 100644 --- a/src/resources/views/pacientes/evolucao/criar.blade.php +++ b/src/resources/views/pacientes/evolucao/criar.blade.php @@ -12,7 +12,22 @@
  • Idade:{{ Saudacoes::idade($paciente->nascimento) }}
  • Convênio:{{ $paciente->convenio }}
  • - + + {{ Form::open(['url' => '#', 'method' => 'get']) }} +
    +
    + {{ Form::label('modelo', 'Modelo') }} + {{ Form::select('modelo', $modelos, '', + ['required' => ''] + ) }} + + +
    +
    + {{ Form::close() }} + {!! Form::open(['url' => 'pacientes/'.$paciente->id.'/evolucoes/nova', 'method' => 'post']) !!} {{ Form::hidden('paciente_id', $paciente->id) }} {{ Form::hidden('autor_id', auth()->user()->id) }} @@ -21,10 +36,10 @@
    - +
    {!! Form::label('evolucao', 'Evolução') !!} - {!! Form::textarea('evolucao', '', ['required' => '', 'placeholder' => 'Detalhes da evolução'] ) !!} + {!! Form::textarea('evolucao', $valor, ['required' => '', 'placeholder' => 'Detalhes da evolução'] ) !!}
    diff --git a/src/resources/views/pacientes/receituario/criar.blade.php b/src/resources/views/pacientes/receituario/criar.blade.php index 5cae31f..bbee5cc 100644 --- a/src/resources/views/pacientes/receituario/criar.blade.php +++ b/src/resources/views/pacientes/receituario/criar.blade.php @@ -13,6 +13,21 @@
  • Convênio:{{ $paciente->convenio }}
  • + {{ Form::open(['url' => '#', 'method' => 'get']) }} +
    +
    + {{ Form::label('modelo', 'Modelo') }} + {{ Form::select('modelo', $modelos, '', + ['required' => ''] + ) }} + + +
    +
    + {{ Form::close() }} + {!! Form::open(['url' => 'pacientes/'.$paciente->id.'/receituarios/novo', 'method' => 'post']) !!} {{ Form::hidden('paciente_id', $paciente->id) }} {{ Form::hidden('autor_id', auth()->user()->id) }} @@ -23,7 +38,7 @@
    {!! Form::label('conteudo', 'Conteúdo') !!} - {!! Form::textarea('conteudo', '', ['required' => '', 'placeholder' => 'Conteúdo do receituário']) !!} + {!! Form::textarea('conteudo', $valor, ['required' => '', 'placeholder' => 'Conteúdo do receituário']) !!}
    diff --git a/src/routes/web.php b/src/routes/web.php index 9d8bb5e..150472e 100644 --- a/src/routes/web.php +++ b/src/routes/web.php @@ -220,3 +220,11 @@ Route::get('editar/{id}', 'CabecalhoController@edicao')->where('id', '[0-9]+'); Route::put('editar/{id}', 'CabecalhoController@editar')->where('id', '[0-9]+'); }); + + +Route::group(['middleware' => 'autenticacao:med|nme'], function() { + Route::get('modelos', 'ModeloController@lista'); + Route::post('modelos', 'ModeloController@novo'); + Route::post('modelos/manipular', 'ModeloController@manipular'); + //->where('id', '[0-9]+') +}); \ No newline at end of file