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 @@
+ @if(session('msg')) + + {{ session('msg') }} + + @endif + + @if(session('erro')) + + {{ session('erro') }} + + @endif +
+ + {{ Form::open(['url' => 'modelos/manipular', 'method' => 'post']) }} +