@php $statuses = ['Semua', 'Gizi Baik', 'Gizi Kurang', 'Gizi Lebih', 'Obesitas', 'Pendek', 'Sangat Pendek', 'Belum Diukur']; $times = ['Hari Ini', '7 Hari', '30 Hari', 'Semua']; $sorts = ['Terbaru diukur', 'Risiko tertinggi', 'Belum diukur', 'Nama anak']; $formatAge = function ($child, $measurement) { $months = $measurement?->umur_bulan; if ($months === null && $child?->tanggal_lahir) { $months = (int) $child->tanggal_lahir->diffInMonths(now()); } if ($months === null) { return '-'; } $months = (int) round((float) $months); $years = intdiv($months, 12); $remaining = $months % 12; return $years > 0 ? "{$years} Tahun {$remaining} Bulan" : "{$months} Bulan"; }; $zText = fn ($value) => $value === null || $value === '' ? '-' : sprintf('%+.2f SD', (float) $value); $trendText = function ($latest, $previous) { if (!$latest || !$previous) { return ['icon' => 'bi-dash-circle', 'label' => 'Trend belum tersedia', 'class' => 'sg-status-gray']; } $weightDelta = (float) $latest->berat - (float) $previous->berat; $heightDelta = (float) $latest->tinggi - (float) $previous->tinggi; if ($heightDelta <= 0) { return ['icon' => 'bi-exclamation-triangle', 'label' => 'Tinggi stagnan', 'class' => 'sg-status-yellow']; } if ($weightDelta < 0) { return ['icon' => 'bi-arrow-down', 'label' => 'Berat turun', 'class' => 'sg-status-orange']; } if ($heightDelta > 0) { return ['icon' => 'bi-arrow-up', 'label' => 'Tinggi naik baik', 'class' => 'sg-status-green']; } return ['icon' => 'bi-arrow-up', 'label' => 'Berat naik stabil', 'class' => 'sg-status-green']; }; @endphp
@for ($i = 0; $i < 6; $i++)
@endfor
Data monitoring gagal dimuat

Monitoring Anak

Pemantauan status gizi dan pertumbuhan anak berdasarkan standar WHO.

Total Anak
{{ number_format($summary['totalChildren']) }}
Risiko Tinggi
{{ number_format($summary['highRiskCount']) }}
Belum Diukur
{{ number_format($summary['unmeasuredCount']) }}
Pengukuran Hari Ini
{{ number_format($summary['todayMeasurements']) }}
Filter status
@foreach ($statuses as $status) @endforeach
@forelse ($rows as $row) @php $child = $row['child']; $latest = $row['latest']; $previous = $row['previous']; $status = $row['status']; $risk = $row['risk']; $trend = $trendText($latest, $previous); $bbuStatus = \App\Helpers\NutritionStatusHelper::bbuStatus($latest); $tbuStatus = \App\Helpers\NutritionStatusHelper::tbuStatus($latest); $bbtbStatus = \App\Helpers\NutritionStatusHelper::bbtbStatus($latest); @endphp
{{ strtoupper(substr($child?->nama ?? 'A', 0, 1)) }}
{{ $child?->nama ?? 'Data anak' }}
{{ $child?->user?->name ?? 'Orang tua belum terhubung' }}
{{ $formatAge($child, $latest) }}
{{ $latest?->tanggal_ukur?->format('d M Y') ?? 'Belum diukur' }}
{{ $status }} {{ $risk }} {{ $trend['label'] }}
BB
{{ $latest ? number_format((float) $latest->berat, 1) : '-' }} kg
TB
{{ $latest ? number_format((float) $latest->tinggi, 1) : '-' }} cm
TB/U {{ $zText($latest?->z_tbu) }} - {{ $tbuStatus }}
BB/U {{ $zText($latest?->z_bbu) }} - {{ $bbuStatus }}
BB/TB {{ $zText($latest?->z_bbtb) }} - {{ $bbtbStatus }}
@empty
Belum ada data anak.
@endforelse
@if ($rows->hasPages())
Menampilkan {{ $rows->firstItem() }}-{{ $rows->lastItem() }} dari {{ $rows->total() }} data
{{ $rows->links('pagination::bootstrap-5') }}
@endif