@php $filters = ['Semua', 'Gizi Buruk', 'Gizi Kurang', 'Gizi Baik', 'Gizi Lebih', 'Obesitas', 'Stunting', 'Risiko Tinggi', 'Belum Diukur', 'Belum Ukur > 30 Hari']; $times = ['Hari Ini', '7 Hari', '30 Hari', 'Semua']; $archives = ['aktif' => 'Aktif', 'arsip' => 'Diarsipkan', 'semua' => 'Semua']; $sorts = [ 'terbaru' => 'Terbaru diukur', 'risiko' => 'Risiko tertinggi', 'nama' => 'Nama A-Z', 'umur' => 'Umur', ]; $genderLabel = fn ($value) => $value === 'P' ? 'Perempuan' : 'Laki-laki'; $ageLabel = function (?int $months) { if ($months === null) return '-'; if ($months < 12) return $months.' bulan'; $years = intdiv($months, 12); $remaining = $months % 12; return $remaining > 0 ? "{$years} tahun {$remaining} bulan" : "{$months} bulan"; }; $statusClass = fn ($status) => $status === 'Di luar batas WHO balita' ? 'sg-status-yellow' : \App\Helpers\NutritionStatusHelper::badgeClass($status); $riskClass = fn ($risk) => match ($risk) { 'Risiko Tinggi' => 'sg-status-red', 'Perlu Pantau' => 'sg-status-orange', 'Stabil' => 'sg-status-green', default => 'sg-status-gray', }; $zScore = function ($label, $value) { return $value !== null ? $label.' '.sprintf('%+.2f SD', (float) $value) : $label.' -'; }; $measurementDate = function ($measurement) { $rawDate = $measurement?->getRawOriginal('tanggal_ukur'); if (!$rawDate) return '-'; return \Illuminate\Support\Carbon::parse($rawDate)->locale('id')->translatedFormat('d M Y'); }; $isSuperAdmin = auth()->user()?->role === 'super_admin'; @endphp
@for ($i = 0; $i < 4; $i++)
@endfor
Data anak gagal dimuat

Data Anak

Monitoring data kesehatan anak, status gizi WHO, risiko pertumbuhan, dan aktivitas keluarga.

Tambah Anak
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 WHO
@foreach ($filters as $item) @endforeach
Anak & Keluarga
Status Terakhir
Status WHO
Pengukuran
Monitoring
@forelse ($children as $row) @php $child = $row['child']; $latest = $row['latest']; $status = $row['status']; $risk = $row['risk']; $outsideWho = $status === 'Di luar batas WHO balita'; $bbu = $outsideWho ? 'Di luar batas WHO balita' : \App\Helpers\NutritionStatusHelper::bbuStatus($latest); $tbu = $outsideWho ? 'Di luar batas WHO balita' : \App\Helpers\NutritionStatusHelper::tbuStatus($latest); $bbtb = $outsideWho ? 'Di luar batas WHO balita' : \App\Helpers\NutritionStatusHelper::bbtbStatus($latest); $primary = $latest ? \App\Helpers\NutritionStatusHelper::primaryZScore($latest) : ['label' => 'BB/TB', 'value' => null]; @endphp
{{ strtoupper(substr($child->nama ?? 'A', 0, 1)) }}
{{ $child->nama }} @if ($child->trashed()) Diarsipkan @endif
{{ $genderLabel($child->jenis_kelamin) }} • {{ $ageLabel($row['age_months']) }}
Orang Tua: {{ $child->user?->name ?? '-' }}
Status
{{ $status }}
{{ $zScore($primary['label'], $primary['value']) }}
BB/U{{ $bbu }}
TB/U{{ $tbu }}
BB/TB{{ $bbtb }}
Pengukuran
{{ $child->measurements_count }}x
Terakhir: {{ $measurementDate($latest) }}
Monitoring {{ $risk }} @if ($latest === null)
Belum ada data WHO
@elseif ($latest->tanggal_ukur?->lt(now()->subDays(30)))
Belum ukur > 30 hari
@endif
@empty
Belum ada data anak.
@endforelse
@if ($children->hasPages())
Menampilkan {{ $children->firstItem() }}-{{ $children->lastItem() }} dari {{ $children->total() }} data
{{ $children->links('pagination::bootstrap-5') }}
@endif