4.9 KiB
4.9 KiB
Fix Riwayat Billing Pasien - Menampilkan Field yang Hilang
Problem
Di halaman Riwayat Billing Pasien, beberapa field tidak menampilkan data:
- ❌ Kelas
- ❌ DPJP (Doctor In Charge)
- ❌ Total Tarif RS
- ❌ Total Klaim
Root Cause
Backend sudah query dan return data (field ada di model), tapi frontend tidak menampilkannya.
Solusi
Backend Changes
1. models/models.go
- Tambah field
ID_DPJPke structRequest_Admin_Inacbg(line ~315)type Request_Admin_Inacbg struct { // ... existing fields ID_DPJP int `json:"id_dpjp"` // ... }
2. services/riwayat_billing_pasien.go - Function GetAllRiwayatpasien()
-
Tambah query untuk fetch DPJP dari tabel
billing_dpjp(after dokter query)dpjpMap := make(map[int]int) var dpjpRows []struct { ID_Billing int ID_DPJP int } if err := db.Table("\"billing_dpjp\""). Where("\"ID_Billing\" IN ?", billingIDs). Select("\"ID_Billing\", \"ID_DPJP\""). Scan(&dpjpRows).Error; err != nil { return nil, err } for _, row := range dpjpRows { dpjpMap[row.ID_Billing] = row.ID_DPJP } -
Update compilation untuk include
ID_DPJPdi response (line ~365)item := models.Request_Admin_Inacbg{ // ... existing fields ID_DPJP: dpjpMap[b.ID_Billing], // ... }
Frontend Changes
src/app/component/riwayat-billing-pasien.tsx
-
Update BillingData Interface (line ~14-35)
- Tambah field
kelas(lowercase variant) - Tambah field
ID_DPJPdanid_dpjp
- Tambah field
-
Mobile Card View (after Dokter section)
- Tambah display untuk Kelas
- Tambah display untuk DPJP
- Tambah display untuk Total Tarif RS
- Tambah display untuk Total Klaim
{/* Kelas */}
<div className="flex items-center justify-between">
<span className="text-xs font-medium text-gray-500 uppercase tracking-wide">
Kelas
</span>
<span className="text-sm font-semibold text-[#2591D0]">
{item.Kelas || item.kelas || '-'}
</span>
</div>
{/* DPJP */}
<div className="flex items-center justify-between">
<span className="text-xs font-medium text-gray-500 uppercase tracking-wide">
DPJP
</span>
<span className="text-sm font-semibold text-[#2591D0]">
{item.ID_DPJP || item.id_dpjp ? `ID: ${item.ID_DPJP || item.id_dpjp}` : '-'}
</span>
</div>
{/* Total Tarif RS */}
<div className="flex items-center justify-between">
<span className="text-xs font-medium text-gray-500 uppercase tracking-wide">
Total Tarif RS
</span>
<span className="text-sm font-semibold text-[#2591D0]">
{item.total_tarif_rs ? `Rp ${item.total_tarif_rs?.toLocaleString('id-ID')}` : '-'}
</span>
</div>
{/* Total Klaim */}
<div className="flex items-center justify-between">
<span className="text-xs font-medium text-gray-500 uppercase tracking-wide">
Total Klaim
</span>
<span className="text-sm font-semibold text-[#2591D0]">
{item.total_klaim ? `Rp ${item.total_klaim?.toLocaleString('id-ID')}` : '-'}
</span>
</div>
Data Flow
GET /admin/riwayat-billing
↓
GetRiwayatBillingHandler
↓
GetAllRiwayatpasien()
├─ Query billing_pasien
├─ Query pasien data (nama, kelas, ruangan)
├─ Query billing_tindakan, icd9, icd10
├─ Query billing_dokter (nama dokter)
├─ Query billing_dpjp (NEW! - untuk dapatkan ID_DPJP)
└─ Compile response dengan semua field
↓
Response JSON include:
- total_tarif_rs ✅
- total_klaim ✅
- id_dpjp ✅
- kelas ✅
↓
Frontend parse dan display semua field ✅
API Response Example
{
"status": "success",
"data": [
{
"id_billing": 1,
"id_pasien": 5,
"nama_pasien": "John Doe",
"Kelas": "1",
"ruangan": "ICU A",
"total_tarif_rs": 5000000,
"total_klaim": 8000000,
"id_dpjp": 3,
"tindakan_rs": ["Operasi", "Konsultasi"],
"icd9": [...],
"icd10": [...],
"inacbg_ri": [],
"inacbg_rj": ["A10.01"],
"billing_sign": "Hijau",
"nama_dokter": ["Dr. Budi", "Dr. Ani"]
}
]
}
Testing Checklist
- Backend compile sukses
- GET
/admin/riwayat-billingreturn semua field - Field
total_tarif_rstampil dengan format currency - Field
total_klaimtampil dengan format currency - Field
Kelastampil dengan benar - Field
id_dpjptampil sebagai "ID: X" atau "-" jika tidak ada - Mobile card view menampilkan semua field baru
- Desktop table view tetap normal (mungkin perlu ekspand untuk tampil field baru)
Files Modified
- ✅
backendcareit_v4/models/models.go- TambahID_DPJPfield - ✅
backendcareit_v4/services/riwayat_billing_pasien.go- Query DPJP - ✅
frontendcareit_v4/src/app/component/riwayat-billing-pasien.tsx- Display fields
Status
✅ Backend Build: SUCCESS
✅ All fields now available: YES
✅ Frontend Display: UPDATED