TIF_E41201157/imt/app/Http/Controllers/PasienController.php

220 lines
7.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Pasien;
use App\Models\Aktivitas;
use App\Models\JenisKelamin;
use Illuminate\Http\Request;
use App\Models\KebutuhanKalori;
use App\Models\KadarGula;
class PasienController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//menampilkan semua data pasien
$pasiens = Pasien::all();
return view('pages.pasien.index', compact('pasiens'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//menampilkan halaman create
$jenis_kelamin = JenisKelamin::all();
$aktivitas = Aktivitas::all();
$kadar_gula = KadarGula::all();
$kebutuhan_kalori = KebutuhanKalori::all();
return view('pages.pasien.create', compact('jenis_kelamin', 'aktivitas','kadar_gula', 'kebutuhan_kalori'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//validasi create data pasien
$request->validate([
'nama' => 'required',
'jenis_kelamin_id' => 'required',
'umur' => 'required|numeric',
'berat' => 'required|numeric',
'tinggi' => 'required|numeric',
'aktivitas_id' => 'required',
'kadar_gula_id' => 'required|numeric',
'kebutuhan_kalori_id' => 'required|numeric',
], [
'nama.required' => 'Nama harus diisi.',
'jenis_kelamin_id.required' => 'Jenis kelamin harus diisi.',
'umur.required' => 'Umur harus diisi.',
'umur.numeric' => 'Umur harus berupa angka.',
'berat.required' => 'Berat harus diisi.',
'berat.numeric' => 'Berat harus berupa angka.',
'tinggi.required' => 'Tinggi harus diisi.',
'tinggi.numeric' => 'Tinggi harus berupa angka.',
'aktivitas_id.required' => 'Aktivitas harus diisi.',
'kadar_gula_id.required' => 'Kadar gula harus diisi.',
'kadar_gula_id.numeric' => 'Kadar gula harus berupa angka.',
'kebutuhan_kalori_id.required' => 'Kebutuhan kalori harus diisi.',
'kebutuhan_kalori_id.numeric' => 'Kebutuhan kalori harus berupa angka.',
]);
//simpan data ke database
$pasien = new Pasien;
$pasien->nama = $request->nama;
$pasien->jenis_kelamin_id = $request->jenis_kelamin_id;
$pasien->umur = $request->umur;
$pasien->berat = $request->berat;
$pasien->tinggi = $request->tinggi;
$pasien->aktivitas_id = $request->aktivitas_id;
$pasien->kadar_gula_id = $request->kadar_gula_id;
$pasien->kebutuhan_kalori_id = $request->kebutuhan_kalori_id;
$imt = $request->berat / $request->tinggi;
if ($imt < 18.5) {
$pasien->status = 'Underweight';
$pasien->save();
}
if ($imt > 18.5 && $imt < 24.9) {
$pasien->status = 'Normal';
$pasien->save();
}
if ($imt > 24.9 && $imt < 29.9) {
$pasien->status = 'Overweight';
$pasien->save();
}
if ($imt > 30) {
$pasien->status = 'Obesitas';
$pasien->save();
}
//redirect ke halaman pasien
return redirect()->route('pasien.index')->with('success', 'Pasien berhasil ditambahkan.');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//menampilkan halaman detail pasien
$pasien = Pasien::find($id);
$jenis_kelamin = JenisKelamin::all();
$aktivitas = Aktivitas::all();
$kadar_gula = KadarGula::all();
$kebutuhan_kalori = KebutuhanKalori::all();
return view('pages.pasien.detail', compact('pasien', 'jenis_kelamin', 'aktivitas','kadar_gula','kebutuhan_kalori'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//menampilkan halaman edit pasien
$pasien = Pasien::find($id);
$jenis_kelamin = JenisKelamin::all();
$aktivitas = Aktivitas::all();
$kadar_gula = KadarGula::all();
$kebutuhan_kalori = KebutuhanKalori::all();
return view('pages.pasien.edit', compact('pasien', 'jenis_kelamin', 'aktivitas','kadar_gula','kebutuhan_kalori'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//validasi update data pasien
$request->validate([
'nama' => 'required',
'jenis_kelamin_id' => 'required',
'umur' => 'required|numeric',
'berat' => 'required|numeric',
'tinggi' => 'required|numeric',
'aktivitas_id' => 'required',
'kadar_gula_id' => 'required|numeric',
'kebutuhan_kalori_id' => 'required|numeric',
], [
'nama.required' => 'Nama harus diisi.',
'jenis_kelamin_id.required' => 'Jenis kelamin harus diisi.',
'umur.required' => 'Umur harus diisi.',
'umur.numeric' => 'Umur harus berupa angka.',
'berat.required' => 'Berat harus diisi.',
'berat.numeric' => 'Berat harus berupa angka.',
'tinggi.required' => 'Tinggi harus diisi.',
'tinggi.numeric' => 'Tinggi harus berupa angka.',
'aktivitas_id.required' => 'Aktivitas harus diisi.',
'kadar_gula_id.required' => 'Kadar gula harus diisi.',
'kadar_gula_id.numeric' => 'Kadar gula harus berupa angka.',
'kebutuhan_kalori_id.required' => 'Kebutuhan kalori harus diisi.',
'kebutuhan_kalori_id.numeric' => 'Kebutuhan kalori harus berupa angka.',
]);
//simpan data pasien
$pasien = Pasien::find($id);
$pasien->nama = $request->nama;
$pasien->jenis_kelamin_id = $request->jenis_kelamin_id;
$pasien->umur = $request->umur;
$pasien->berat = $request->berat;
$pasien->tinggi = $request->tinggi;
$pasien->aktivitas_id = $request->aktivitas_id;
$pasien->kadar_gula_id = $request->kadar_gula_id;
$pasien->kebutuhan_kalori_id = $request->kebutuhan_kalori_id;
$imt = $request->berat / $request->tinggi;
if ($imt < 18.5) {
$pasien->status = 'Underweight';
$pasien->save();
}
if ($imt > 18.5 && $imt < 24.9) {
$pasien->status = 'Normal';
$pasien->save();
}
if ($imt > 24.9 && $imt < 29.9) {
$pasien->status = 'Overweight';
$pasien->save();
}
if ($imt > 30) {
$pasien->status = 'Obesitas';
$pasien->save();
}
//redirect ke halaman pasien
return redirect()->route('pasien.index')->with('success', 'Pasien berhasil diubah');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//hapus pasien
Pasien::find($id)->delete();
//redirect halaman pasien
return redirect()->route('pasien.index')->with('success', 'Pasien berhasil dihapus');
}
}