BUG-DASH-280826 - perbaiki sumber data checkout dan definisi Checked Out di dashboard

sp_generate_dashboard_data menebak Mcu_CheckinoutOutTime dari MAX() timestamp
event lab (sample receive/sampling done), bukan dari checkout fisik pasien,
sehingga pasien yang belum checkout bisa tampil "Checked Out" walau stationnya
belum selesai. Ganti sumbernya ke cpone.preregister_checkin_checkout (log
checkin/checkout asli) dan hentikan pemaksaan Mcu_CheckinoutID = order_id yang
bentrok untuk project multi-hari.

KPI "Checked Out" di GetKPI juga diselaraskan dengan detail pasien: sekarang
hitung dari GetAllPatients dan mensyaratkan semua station wajib sudah selesai,
bukan cuma checkout fisik saja, supaya angka KPI dan modal detail selalu sinkron.
This commit is contained in:
sas.fajri
2026-08-28 16:09:04 +07:00
parent a35df69be9
commit 558f44b7c2
3 changed files with 267 additions and 27 deletions

View File

@@ -261,11 +261,11 @@ func Patients(w http.ResponseWriter, r *http.Request) {
filteredByKPI = append(filteredByKPI, p)
}
case "inprogress":
if p.InTime != "" && !p.HasOut {
if p.InTime != "" && !(p.HasOut && p.ProgressStatus == "done") {
filteredByKPI = append(filteredByKPI, p)
}
case "checkedout":
if p.HasOut {
if p.HasOut && p.ProgressStatus == "done" {
filteredByKPI = append(filteredByKPI, p)
}
default: