220 lines
7.6 KiB
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');
|
|
}
|
|
}
|