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 @@
-

Kalender

+

Early Warning Sistem

-
+ + + + + + + + + + + + + + + + + + @forelse($earlyWarnings as $i => $row) + + + + + + + + + + + + + + @empty + + + + @endforelse + +
NoNo.SampleNo.RMNamaOrderAsal PasienStatusDaftarTarget (Hari)Estimasi SelesaiWarning
{{ $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.
@@ -275,8 +318,8 @@ $(document).ready(function() { $(".btnubahfoto").click(function() { $('#modalupdatefoto').modal('show'); }); - $("#btnsimpanfoto").click(function(){ - var filegambar = document.getElementById('upload_file'); + $("#btnsimpanfoto").click(function(){ + var filegambar = document.getElementById('upload_file'); $('#modalupdatefoto').modal('hide'); var form_data = new FormData(); form_data.append('file', filegambar.files[0]); @@ -316,62 +359,9 @@ $(document).ready(function() { text: error, type: 'warning', }) - } - }); - }); - var sourcekalender = { - datatype: "json", - datafields: [ - { name: 'id', type: 'string' }, - { name: 'description', type: 'string' }, - { name: 'location', type: 'string' }, - { name: 'subject', type: 'string' }, - { name: 'calendar', type: 'string' }, - { name: 'start', type: 'date' }, - { name: 'end', type: 'date' } - ], - id : 'id', - url : '{{ route("getkalenderlist") }}' - }; - var datajsonawal = new $.jqx.dataAdapter(sourcekalender); - $("#gridjadwal").jqxScheduler({ - date : new $.jqx.date(), - width : '95%', - height : 600, - source : datajsonawal, - showLegend : true, - theme : 'energyblue', - view : 'agendaView', - ready: function () { - $("#gridjadwal").jqxScheduler('ensureAppointmentVisible', 'id1'); - }, - resources: - { - colorScheme : "scheme05", - dataField : "calendar", - source : new $.jqx.dataAdapter(sourcekalender) - }, - appointmentDataFields: - { - from : "start", - to : "end", - id : "id", - description : "description", - location : "place", - subject : "subject", - readOnly : "readOnly", - resourceId : "calendar", - - }, - views : - [ - 'dayView', - 'weekView', - 'monthView', - 'agendaView' - ], - - }); + } + }); + }); }); -@endpush \ No newline at end of file +@endpush