110 lines
3.7 KiB
PHP
110 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Pemeriksaan;
|
|
use App\Models\User;
|
|
use App\Models\Pasien;
|
|
use App\Models\Obat;
|
|
use App\Models\Resep;
|
|
|
|
class ObatpasienController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function index()
|
|
{
|
|
$no = 1;
|
|
$dokter = User::where('role', 'dokter')
|
|
->where('status', 'aktif')->get();
|
|
$pasien = Pasien::get();
|
|
$periksa = Pemeriksaan::with('pasien')->get();
|
|
$resep_obat = Obat::get();
|
|
|
|
// Mengambil data pemeriksaan dengan mengurutkan berdasarkan waktu pembuatan secara descending
|
|
$kunjungan = Resep::select('resepobat.id_periksa', 'pemeriksaan.no_periksa', 'pasien.nama_pasien', 'resepobat.pembelian as pembelian', 'pemeriksaan.status as statuspemeriksaan', 'resepobat.status as statusobat', 'pemeriksaan.tgl_kunjungan', 'pemeriksaan.waktu_kunjungan')
|
|
->join('pemeriksaan', 'resepobat.id_periksa', '=', 'pemeriksaan.id')
|
|
->join('pasien', 'pemeriksaan.pasien_id', '=', 'pasien.id')
|
|
->orderByDesc('pemeriksaan.tgl_kunjungan') // Urutkan berdasarkan tanggal kunjungan secara descending
|
|
->orderByDesc('pemeriksaan.waktu_kunjungan') // Urutkan berdasarkan waktu kunjungan secara descending
|
|
->groupBy('pemeriksaan.no_periksa', 'resepobat.id_periksa', 'pemeriksaan.pasien_id', 'pemeriksaan.no_periksa', 'pasien.nama_pasien', 'pembelian', 'pemeriksaan.status', 'resepobat.status', 'pemeriksaan.tgl_kunjungan', 'pemeriksaan.waktu_kunjungan')
|
|
->where('pembelian', '!=', 'sendiri')
|
|
->get();
|
|
|
|
return view('pages.obatpasien', compact('kunjungan', 'no', 'dokter', 'pasien', 'resep_obat', 'periksa'));
|
|
}
|
|
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*/
|
|
public function create()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
// dd($request['pembelian']);
|
|
try{
|
|
foreach ($request['id_obat'] as $index => $id_obat) {
|
|
$aturanpakai = (string) $request['aturanpakai'][$index];
|
|
$deskripsi = $request['deskripsi'][$index];
|
|
|
|
// Simpan ke database sesuai kebutuhan Anda
|
|
Resep::create([
|
|
'id_periksa' => $request['id_periksa'],
|
|
'pembelian' => $request['pembelian'],
|
|
'status' => $request['status'],
|
|
'deskripsi' => (string) $deskripsi,
|
|
'aturanpakai' => (string) $aturanpakai,
|
|
'id_obat' => (string) $id_obat,
|
|
]);
|
|
}
|
|
// Pemeriksa::create($data);
|
|
|
|
return redirect()->route('obatpasien.index');
|
|
}catch(\Exception $e){
|
|
dd($e);
|
|
}
|
|
}
|
|
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
try {
|
|
// Temukan resep berdasarkan id_periksa
|
|
$resep = Resep::where('id_periksa', $id)->firstOrFail();
|
|
|
|
// Lakukan pembaruan pada atribut yang diperlukan
|
|
$resep->update($request->all());
|
|
|
|
// Perbarui semua entri dengan id_periksa yang sama jika status adalah 'selesai'
|
|
if ($request->status === 'sudah diambil') {
|
|
Resep::where('id_periksa', $id)->update(['status' => 'sudah diambil']);
|
|
}
|
|
|
|
// Redirect dengan pesan sukses
|
|
return redirect()->route('obatpasien.index')->with('success', 'Resep updated successfully');
|
|
} catch (\Exception $e) {
|
|
// Tangkap pengecualian dan tampilkan pesan kesalahan
|
|
return redirect()->route('obatpasien.index')->with('error', 'Failed to update resep: ' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show(string $id)
|
|
{
|
|
//
|
|
}
|
|
}
|