diff --git a/htdocs/app/Http/Controllers/FrontpageController.php b/htdocs/app/Http/Controllers/FrontpageController.php index c6130249..b85a9694 100644 --- a/htdocs/app/Http/Controllers/FrontpageController.php +++ b/htdocs/app/Http/Controllers/FrontpageController.php @@ -75,6 +75,57 @@ class FrontpageController extends Controller $data['butuhverifikasi'] = $unveri; $data['antrian'] = $hariini; $data['persenantrian'] = $tulis; + $now = Carbon::now(); + $rawEarlyWarnings = Periksa::leftJoin('poli', 'periksa.poli_id', '=', 'poli.id') + ->select( + 'periksa.id', + 'periksa.nofoto', + 'periksa.noregister', + 'periksa.nmpasien', + 'periksa.reques', + 'periksa.asalpasien', + 'periksa.daftar', + 'periksa.status', + 'poli.subpoli', + 'poli.modaliti2' + ) + ->where(function($q) { + $q->whereNull('periksa.status') + ->orWhere('periksa.status', '<>', 'Selesai'); + }) + ->whereNotNull('periksa.daftar') + ->orderBy('periksa.daftar', 'ASC') + ->get(); + + $earlyWarnings = []; + foreach ($rawEarlyWarnings as $row) { + $targetDays = 1; + if (!empty($row->modaliti2) && is_numeric($row->modaliti2) && intval($row->modaliti2) > 0) { + $targetDays = intval($row->modaliti2); + } + + $waktuDaftar = Carbon::parse($row->daftar); + $targetSelesai = $waktuDaftar->copy()->addDays($targetDays); + $sisaMenit = $now->diffInMinutes($targetSelesai, false); + + if ($sisaMenit <= 60) { + $earlyWarnings[] = [ + 'id' => $row->id, + 'nofoto' => $row->nofoto, + 'noregister' => $row->noregister, + 'nmpasien' => $row->nmpasien, + 'reques' => $row->reques, + 'asalpasien' => $row->asalpasien, + 'status' => $row->status ?? '-', + 'daftar' => $waktuDaftar->format('Y-m-d H:i:s'), + 'target_hari' => $targetDays, + 'target_selesai' => $targetSelesai->format('Y-m-d H:i:s'), + 'sisa_menit' => $sisaMenit, + 'warning_label' => $sisaMenit <= 0 ? 'Melewati Target' : 'Kurang dari 1 Jam' + ]; + } + } + $data['earlyWarnings'] = $earlyWarnings; return view('dokter.dashborad', $data); } else { try { diff --git a/htdocs/resources/views/dokter/dashborad.blade.php b/htdocs/resources/views/dokter/dashborad.blade.php index 9384ec58..602907c4 100644 --- a/htdocs/resources/views/dokter/dashborad.blade.php +++ b/htdocs/resources/views/dokter/dashborad.blade.php @@ -111,9 +111,52 @@
| No | +No.Sample | +No.RM | +Nama | +Order | +Asal Pasien | +Status | +Daftar | +Target (Hari) | +Estimasi Selesai | +Warning | +
|---|---|---|---|---|---|---|---|---|---|---|
| {{ $i + 1 }} | +{{ $row['nofoto'] }} | +{{ $row['noregister'] }} | +{{ $row['nmpasien'] }} | +{{ $row['reques'] }} | +{{ $row['asalpasien'] }} | +{{ $row['status'] }} | +{{ $row['daftar'] }} | +{{ $row['target_hari'] }} | +{{ $row['target_selesai'] }} | ++ @if($row['sisa_menit'] <= 0) + {{ $row['warning_label'] }} + @else + {{ $row['warning_label'] }} ({{ $row['sisa_menit'] }} menit) + @endif + | +
| Tidak ada data Early Warning. | +||||||||||