153 lines
4.5 KiB
PHP
153 lines
4.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Ms_Pasien;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class PasienController extends Controller
|
|
{
|
|
// GET /pasien
|
|
public function getPasien()
|
|
{
|
|
try {
|
|
$data = Ms_Pasien::where('statusenabled', true)->get();
|
|
return response()->json([
|
|
'message' => 'Data pasien berhasil diambil',
|
|
'data' => $data
|
|
]);
|
|
} catch (\Exception $e) {
|
|
return response()->json([
|
|
'message' => 'Gagal ambil data pasien',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
|
|
public function getDetailPasien($mr)
|
|
{
|
|
try {
|
|
$pasien = Ms_Pasien::where('statusenabled', true)->findOrFail($mr);
|
|
return response()->json([
|
|
'message' => 'Data pasien ditemukan',
|
|
'data' => $pasien
|
|
]);
|
|
} catch (\Exception $e) {
|
|
return response()->json([
|
|
'message' => 'Pasien tidak ditemukan',
|
|
'error' => $e->getMessage()
|
|
], 404);
|
|
}
|
|
}
|
|
|
|
|
|
public function tambahPasien(Request $request)
|
|
{
|
|
DB::beginTransaction();
|
|
|
|
try {
|
|
$validated = $request->validate([
|
|
'NamaPasien' => 'required|string|max:100',
|
|
'TanggalLahir' => 'required|date',
|
|
'JenisKelamin' => 'required|string|in:Laki-laki,Perempuan',
|
|
'Alamat' => 'nullable|string|max:255',
|
|
'NoHP' => 'nullable|string|max:20',
|
|
]);
|
|
|
|
$last = Ms_Pasien::orderByDesc('NoRM')->first();
|
|
$nextNumber = $last ? (int)$last->NoRM + 1 : 1;
|
|
$noRM = str_pad($nextNumber, 5, '0', STR_PAD_LEFT);
|
|
$mrPasien = 'RSABHK' . $nextNumber;
|
|
|
|
$pasien = Ms_Pasien::create([
|
|
'MRPasien' => $mrPasien,
|
|
'NoRM' => $noRM,
|
|
'NamaPasien' => $validated['NamaPasien'],
|
|
'TanggalLahir' => $validated['TanggalLahir'],
|
|
'JenisKelamin' => $validated['JenisKelamin'],
|
|
'Alamat' => $validated['Alamat'] ?? null,
|
|
'NoHP' => $validated['NoHP'] ?? null,
|
|
'statusenabled' => true,
|
|
]);
|
|
|
|
DB::commit();
|
|
|
|
return response()->json([
|
|
'message' => 'Pasien berhasil ditambahkan',
|
|
'data' => $pasien
|
|
], 201);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return response()->json([
|
|
'message' => 'Gagal tambah pasien',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
|
|
public function updatePasien(Request $request, $mr)
|
|
{
|
|
DB::beginTransaction();
|
|
|
|
try {
|
|
$validated = $request->validate([
|
|
'NamaPasien' => 'required|string|max:100',
|
|
'TanggalLahir' => 'required|date',
|
|
'JenisKelamin' => 'required|string|in:Laki-laki,Perempuan',
|
|
'Alamat' => 'nullable|string|max:255',
|
|
'NoHP' => 'nullable|string|max:20',
|
|
]);
|
|
|
|
$pasien = Ms_Pasien::findOrFail($mr);
|
|
|
|
$pasien->update([
|
|
'NamaPasien' => $validated['NamaPasien'],
|
|
'TanggalLahir' => $validated['TanggalLahir'],
|
|
'JenisKelamin' => $validated['JenisKelamin'],
|
|
'Alamat' => $validated['Alamat'] ?? null,
|
|
'NoHP' => $validated['NoHP'] ?? null,
|
|
]);
|
|
|
|
DB::commit();
|
|
|
|
return response()->json([
|
|
'message' => 'Pasien berhasil diperbarui',
|
|
'data' => $pasien
|
|
]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return response()->json([
|
|
'message' => 'Gagal update pasien',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
|
|
public function hapusPasien($mr)
|
|
{
|
|
DB::beginTransaction();
|
|
try {
|
|
$pasien = Ms_Pasien::findOrFail($mr);
|
|
$pasien->statusenabled = false;
|
|
$pasien->save();
|
|
|
|
DB::commit();
|
|
|
|
return response()->json([
|
|
'message' => 'Pasien berhasil dinonaktifkan',
|
|
'data' => $pasien
|
|
]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return response()->json([
|
|
'message' => 'Gagal hapus pasien',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
}
|