where('statusenabled', true) ->get(); return response()->json([ 'message' => 'Data registrasi berhasil diambil', 'data' => $data, ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Gagal mengambil data registrasi', 'error' => $e->getMessage() ], 500); } } // 🔥 Get detail registrasi by ID public function getDetailRegistrasi($id) { try { $data = TrRegistrasi::with([ 'pasien', 'pegawai', 'kamar', 'tempatTidur', 'ruanganPelayanan', 'asuransi' ])->findOrFail($id); return response()->json([ 'message' => 'Detail registrasi ditemukan', 'data' => $data, ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Registrasi tidak ditemukan', 'error' => $e->getMessage(), ], 404); } } // 🔥 Tambah registrasi baru dengan mrpasien dari URL public function addRegistrasi(Request $request, $mrpasien) { DB::beginTransaction(); try { $validated = $request->validate([ 'TanggalRegistrasi' => 'required|date', 'NomorKartuAsuransi' => 'nullable|string|max:255', 'IdAsuransi' => 'required|exists:ms__asuransis,IdAsuransi', 'IdPegawai' => 'required|exists:ms__pegawais,IdPegawai', 'IdRuangPelayanan' => 'required|exists:ms__ruang_pelayanans,IdRuangPelayanan', 'JenisRawat' => 'required|in:rawat_jalan,rawat_inap', 'IdKamar' => 'nullable|exists:ms__kamars,id', 'IdTempatTidur' => 'nullable|exists:ms__tempat_tidurs,id', ]); // Generate NoRegistrasi $tanggal = now()->format('dmY'); $countToday = TrRegistrasi::whereDate('TanggalRegistrasi', now())->count() + 1; $noUrut = str_pad($countToday, 3, '0', STR_PAD_LEFT); $noReg = $tanggal . $noUrut; $registrasi = TrRegistrasi::create([ 'NoRegistrasi' => $noReg, 'TanggalRegistrasi' => $validated['TanggalRegistrasi'], 'MRPasien' => $mrpasien, 'NomorKartuAsuransi' => $validated['NomorKartuAsuransi'] ?? null, 'IdAsuransi' => $validated['IdAsuransi'], 'IdPegawai' => $validated['IdPegawai'], 'IdRuangPelayanan' => $validated['IdRuangPelayanan'], 'JenisRawat' => $validated['JenisRawat'], 'IdKamar' => $validated['JenisRawat'] == 'rawat_inap' ? $validated['IdKamar'] : null, 'IdTempatTidur' => $validated['JenisRawat'] == 'rawat_inap' ? $validated['IdTempatTidur'] : null, 'statusenabled' => true, ]); DB::commit(); return response()->json([ 'message' => 'Registrasi berhasil ditambahkan', 'data' => $registrasi, ], 201); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Gagal menambahkan registrasi', 'error' => $e->getMessage(), ], 500); } } // 🔥 Update registrasi public function updateRegistrasi(Request $request, $id) { DB::beginTransaction(); try { $validated = $request->validate([ 'TanggalRegistrasi' => 'required|date', 'NomorKartuAsuransi' => 'nullable|string|max:255', 'IdAsuransi' => 'required|exists:ms__asuransis,IdAsuransi', 'IdPegawai' => 'required|exists:ms__pegawais,IdPegawai', 'IdRuangPelayanan' => 'required|exists:ms__ruang_pelayanans,IdRuangPelayanan', 'JenisRawat' => 'required|in:rawat_jalan,rawat_inap', 'IdKamar' => 'nullable|exists:ms__kamars,id', 'IdTempatTidur' => 'nullable|exists:ms__tempat_tidurs,id', ]); $registrasi = TrRegistrasi::findOrFail($id); $registrasi->update([ 'TanggalRegistrasi' => $validated['TanggalRegistrasi'], 'NomorKartuAsuransi' => $validated['NomorKartuAsuransi'] ?? null, 'IdAsuransi' => $validated['IdAsuransi'], 'IdPegawai' => $validated['IdPegawai'], 'IdRuangPelayanan' => $validated['IdRuangPelayanan'], 'JenisRawat' => $validated['JenisRawat'], 'IdKamar' => $validated['JenisRawat'] == 'rawat_inap' ? $validated['IdKamar'] : null, 'IdTempatTidur' => $validated['JenisRawat'] == 'rawat_inap' ? $validated['IdTempatTidur'] : null, ]); DB::commit(); return response()->json([ 'message' => 'Registrasi berhasil diperbarui', 'data' => $registrasi, ]); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Gagal update registrasi', 'error' => $e->getMessage(), ], 500); } } // 🔥 Hapus registrasi (nonaktifkan) public function hapusRegistrasi($id) { DB::beginTransaction(); try { $registrasi = TrRegistrasi::findOrFail($id); $registrasi->statusenabled = false; $registrasi->save(); DB::commit(); return response()->json([ 'message' => 'Registrasi berhasil dinonaktifkan', ]); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Gagal menghapus registrasi', 'error' => $e->getMessage(), ], 500); } } }