MIF_E31210164/app/Http/Controllers/PemeriksaandokterController...

136 lines
4.0 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\Tindakan;
use App\Models\Penyakit;
use App\Models\Obat;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\DB;
class PemeriksaandokterController 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();
$tindakan = Tindakan::get();
$penyakit = Penyakit::get();
$kunjungan = Pemeriksaan::with('pasien')->orderBy('created_at', 'desc')->get();
$resep_obat = Obat::get();
// print_r($kunjungan[0]); die();
return view('pages.pemeriksaandokter', compact('kunjungan', 'no', 'dokter', 'pasien', 'tindakan', 'penyakit', 'resep_obat'));
}
public function rujukan(Request $request)
{
$no = 1;
App::setLocale('id');
$id_periksa = $request->get('id_periksa');
$tujuan = $request->get('tujuan');
$kunjungan = Pemeriksaan::select('*',
DB::raw('
(
SELECT JSON_ARRAYAGG(
JSON_OBJECT(
"id", resepobat.id,
"nama_obat", (SELECT nama_obat FROM obat WHERE obat.id = resepobat.id_obat),
"deskripsi", resepobat.deskripsi,
"aturanpakai", resepobat.aturanpakai,
"jumlah", resepobat.jumlah
)
)
FROM resepobat
WHERE resepobat.id_periksa = pemeriksaan.id
) as resep
')
)->with('pasien')->find($id_periksa);
// print_r($kunjungan[0]); die();
return view('pages.rujukan', compact('kunjungan', 'no', 'tujuan'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$data = $request->all();
Pemeriksaan::create($data);
return redirect()->route('pemeriksaandokter.index');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
public function update(Request $request, $id)
{
try {
$pemeriksaan = Pemeriksaan::findOrFail($id);
if ($request->hasFile('foto')) {
$data = $request->all();
$data['foto'] = $request->file('foto')->store('assets/foto_fisik', 'public');
$pemeriksaan->update($data);
} else {
$pemeriksaan->update($request->all());
}
// Dapatkan nama pasien yang terkait dengan pemeriksaan
$nama_pasien = $pemeriksaan->pasien->nama_pasien;
// Berikan pesan bahwa pasien telah selesai diperiksa oleh dokter
return redirect()->route('pemeriksaandokter.index')->with('success', 'Pasien ' . $nama_pasien . ' telah selesai diperiksa oleh dokter.');
} catch (\Exception $e) {
// Tangkap pengecualian dan tampilkan pesan kesalahan
return redirect()->route('pemeriksaandokter.index')->with('error', 'Gagal memperbarui pemeriksaan: ' . $e->getMessage());
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Pemeriksaan::findOrFail($id);
$data->delete();
return redirect()->route('pemeriksaandokter.index');
}
}