@extends('layouts.app') @section('title', 'Detail Laporan Rekomendasi') @section('content') @php $hasil = json_decode($laporan->hasil_json, true) ?? []; $pasien = $laporan->pasien ?? null; $aktivitas_laporan = $laporan->aktivitas_harian ?? optional($pasien)->aktivitas_harian ?? '-'; $bb = $laporan->berat_badan ?? optional($pasien)->berat_badan ?? 0; $tb = $laporan->tinggi_badan ?? optional($pasien)->tinggi_badan ?? 0; $umur = $laporan->umur ?? optional($pasien)->umur ?? 0; $jenis_kelamin = $laporan->jenis_kelamin ?? optional($pasien)->jenis_kelamin ?? '-'; $kebutuhan_kalori = $laporan->kebutuhan_kalori ?? 0; if ($kebutuhan_kalori <= 0 && $bb > 0 && $tb > 0 && $umur > 0) { if ($jenis_kelamin == 'Laki-laki') { $bmr = 66.5 + (13.7 * $bb) + (5 * $tb) - (6.8 * $umur); } else { $bmr = 655 + (9.6 * $bb) + (1.8 * $tb) - (4.7 * $umur); } $faktor = match(strtolower($aktivitas_laporan)) { 'ringan' => 1.2, 'sedang' => 1.55, 'berat' => 1.9, default => 1.2 }; $kebutuhan_kalori = round($bmr * $faktor); } $ukuran_porsi = $laporan->ukuran_porsi; $jumlah_porsi = $laporan->jumlah_porsi ?? 1; $frekuensi_makan = $laporan->frekuensi_makan ?? '3x makan utama + 2x snack'; if (empty($jumlah_porsi) || $jumlah_porsi < 1) { $jumlah_porsi = 1; } if (empty($ukuran_porsi)) { if ($bb >= 90) { $ukuran_porsi = 'Mangkuk Besar'; } elseif ($bb >= 70) { $ukuran_porsi = 'Mangkuk Sedang'; } else { $ukuran_porsi = 'Mangkuk Kecil'; } } @endphp

Detail Rekomendasi

Analisis rekomendasi makanan menggunakan metode Simple Additive Weighting (SAW)

🔥 Kebutuhan Kalori: {{ number_format($kebutuhan_kalori) }} kkal / hari
ID Laporan #{{ $laporan->id }} Cetak Laporan

Nama Pasien

{{ $laporan->nama_pasien }}

Waktu

{{ $laporan->created_at->format('d M Y') }}

Gejala

{{ ucwords(str_replace(',', ', ', $laporan->gejala)) }}

Aktivitas

{{ ucwords($laporan->aktivitas_harian ?? '-') }}

Berat

{{ $laporan->berat_badan ?? 0 }} kg

Tinggi

{{ $laporan->tinggi_badan ?? 0 }} cm

Jumlah Porsi

{{ $jumlah_porsi }} Porsi

Ukuran Porsi

{{ $ukuran_porsi }}

Frekuensi Makan

{{ $frekuensi_makan }}

@if(!empty($hasil))
Rekomendasi Terbaik

{{ $hasil[0]['nama_makanan'] ?? '-' }}

Menu makanan ini memiliki nilai tertinggi berdasarkan perhitungan metode Simple Additive Weighting (SAW) dengan mempertimbangkan kondisi gejala gastritis, kandungan nutrisi, tekstur makanan, dan kebutuhan energi pasien.

Skor SAW

{{ number_format($hasil[0]['skor'] ?? 0, 4) }}

@endif @if(!empty($hasil)) @php $top = $hasil[0]; $gejala = strtolower($laporan->gejala ?? ''); $aktivitas = strtolower($aktivitas_laporan ?? 'ringan'); $penjelasan = ''; if(str_contains($gejala, 'mual')){ $penjelasan = "Menu makanan {$top['nama_makanan']} direkomendasikan karena memiliki tekstur yang lembut dan lebih mudah diterima oleh lambung. Makanan ini dapat membantu pasien tetap makan dengan nyaman tanpa memperberat rasa mual. "; if($aktivitas == 'berat'){ $penjelasan .= "Menu ini juga membantu memenuhi kebutuhan energi pasien yang memiliki aktivitas harian berat. "; } elseif($aktivitas == 'sedang'){ $penjelasan .= "Menu ini juga cukup membantu memenuhi kebutuhan energi pasien dengan aktivitas harian sedang. "; } else { $penjelasan .= "Menu ini juga sesuai untuk kebutuhan energi pasien dengan aktivitas harian ringan. "; } } elseif(str_contains($gejala, 'nyeri lambung')){ $penjelasan = "Menu makanan {$top['nama_makanan']} direkomendasikan karena lebih ramah untuk lambung, mudah dicerna, dan tidak terlalu membebani kerja lambung. Makanan ini dapat membantu pasien tetap mendapatkan asupan makanan yang sesuai saat mengalami nyeri lambung. "; if($aktivitas == 'berat'){ $penjelasan .= "Menu ini juga disesuaikan dengan kebutuhan energi pasien yang memiliki aktivitas harian berat. "; } elseif($aktivitas == 'sedang'){ $penjelasan .= "Menu ini juga disesuaikan dengan kebutuhan energi pasien yang memiliki aktivitas harian sedang. "; } else { $penjelasan .= "Menu ini juga disesuaikan dengan kebutuhan energi pasien yang memiliki aktivitas harian ringan. "; } } else { $penjelasan = "Menu makanan {$top['nama_makanan']} direkomendasikan karena sesuai dengan kondisi pasien, kebutuhan energi harian, dan kandungan nutrisi makanan. "; } @endphp

Penjelasan Rekomendasi

{!! $penjelasan !!}

@if(!empty($jumlah_porsi) && !empty($ukuran_porsi)) @if(str_contains($gejala, 'mual'))

Pasien dianjurkan mengonsumsi {{ $jumlah_porsi }} porsi dengan ukuran {{ $ukuran_porsi }} pada setiap makan utama agar makanan lebih nyaman diterima oleh lambung dan tidak memperberat rasa mual. Konsumsi makanan tetap dianjurkan secara bertahap agar pasien tetap nyaman saat makan.

@elseif(str_contains($gejala, 'nyeri lambung'))

Pasien dianjurkan mengonsumsi makanan dengan ukuran {{ $ukuran_porsi }} pada setiap makan utama. Jumlah porsi disesuaikan dengan kebutuhan energi dan aktivitas pasien, namun konsumsi makanan tetap dianjurkan secara bertahap agar lambung tidak bekerja terlalu berat.

@endif

Selain itu, pasien dianjurkan makan secara teratur sebanyak {{ $frekuensi_makan }} agar lambung tidak kosong terlalu lama dan kebutuhan energi harian tetap terpenuhi. Snack yang dimaksud adalah makanan ringan yang aman untuk lambung, seperti makanan yang tidak pedas, tidak asam, tidak berminyak, dan mudah dicerna.

@endif
@endif

Ranking Alternatif Makanan

Hasil perangkingan makanan berdasarkan metode SAW

Kriteria: Protein • Lemak • Karbo • Serat • Kalori
@foreach(array_slice($hasil, 0, 10) as $index => $item) @php $rank = $index + 1; @endphp @endforeach
Rank Menu Makanan Protein Lemak Karbo Serat Kalori Skor SAW Detail
@if($rank == 1)
1
@elseif($rank == 2)
2
@elseif($rank == 3)
3
@else
{{ $rank }}
@endif
{{ $item['nama_makanan'] ?? '-' }}
{{ ucfirst($item['tekstur'] ?? '-') }} {{ $item['cara_pengolahan'] ?? '-' }}
{{ number_format($item['protein'] ?? 0,1) }}g
{{ number_format($item['lemak'] ?? 0,1) }}g
{{ number_format($item['karbohidrat'] ?? 0,1) }}g
{{ number_format($item['serat'] ?? 0,1) }}g
{{ number_format($item['kalori'] ?? 0,0) }} kkal
{{ number_format($item['skor'] ?? 0,4) }}
← Kembali
@endsection