fix db
This commit is contained in:
parent
2a0f07848a
commit
c931be9006
|
|
@ -39,35 +39,37 @@ public function store(Request $request)
|
|||
{
|
||||
$request->validate([
|
||||
'balita_id' => 'required',
|
||||
'tanggal' => 'required',
|
||||
'usia' => 'required',
|
||||
'jenis_kelamin' => 'required',
|
||||
'berat_badan' => 'required',
|
||||
'tinggi_badan' => 'required',
|
||||
'lingkar_kepala' => 'required',
|
||||
'tanggal' => 'required|date',
|
||||
'usia' => 'required|numeric',
|
||||
'jenis_kelamin' => 'required', // Pastikan valuenya 1 atau 0
|
||||
'berat_badan' => 'required|numeric',
|
||||
'tinggi_badan' => 'required|numeric',
|
||||
'lingkar_kepala' => 'required|numeric', // Ini dikirim sebagai LiLA ke Flask
|
||||
]);
|
||||
|
||||
try {
|
||||
$response = Http::post('http://127.0.0.1:5000/predict', [
|
||||
// Request ke API Flask
|
||||
$response = Http::timeout(10)->post('http://127.0.0.1:5000/predict', [
|
||||
'JK' => (int) $request->jenis_kelamin,
|
||||
'Usia' => (int) $request->usia,
|
||||
'Berat' => (float) $request->berat_badan,
|
||||
'Tinggi' => (float) $request->tinggi_badan,
|
||||
'LiLA' => (float) $request->lingkar_kepala,
|
||||
'LiLA' => (float) $request->lingkar_kepala, // Mapping ke input LiLA di ML
|
||||
]);
|
||||
|
||||
if ($response->successful()) {
|
||||
$hasilML = $response->json();
|
||||
|
||||
// Mapping yang konsisten dengan standar WHO & Kemenkes
|
||||
$mapHasil = [
|
||||
0 => 'Stunting',
|
||||
1 => 'Risiko Stunting',
|
||||
0 => 'Sangat Pendek',
|
||||
1 => 'Pendek',
|
||||
2 => 'Normal'
|
||||
];
|
||||
|
||||
$teksHasil = $mapHasil[$hasilML['Status_Stunting']] ?? 'Normal';
|
||||
|
||||
// 1. Simpan Pengukuran (Cukup Sekali Saja)
|
||||
// 1. Simpan Pengukuran
|
||||
$pengukuran = PengukuranBalita::create([
|
||||
'balita_id' => $request->balita_id,
|
||||
'user_id' => auth()->id() ?? 1,
|
||||
|
|
@ -81,10 +83,10 @@ public function store(Request $request)
|
|||
'bmi' => $request->berat_badan / (($request->tinggi_badan/100) ** 2),
|
||||
]);
|
||||
|
||||
// 2. Ambil Template Edukasi
|
||||
// 2. Ambil Template Edukasi & Simpan
|
||||
// Gunakan where kategori yang sama dengan $teksHasil
|
||||
$templates = Edukasi::where('kategori', $teksHasil)->get();
|
||||
|
||||
// 3. Simpan ke tabel Edukasi2
|
||||
foreach ($templates as $item) {
|
||||
Edukasi2::create([
|
||||
'balita_id' => $request->balita_id,
|
||||
|
|
@ -95,14 +97,13 @@ public function store(Request $request)
|
|||
]);
|
||||
}
|
||||
|
||||
return redirect()->route('pengukuran_balita.index')->with('success', 'Berhasil menyimpan data dan edukasi!');
|
||||
return redirect()->route('pengukuran_balita.index')->with('success', "Hasil: $teksHasil. Data dan edukasi berhasil disimpan!");
|
||||
}
|
||||
|
||||
// Jika API Flask error
|
||||
dd("Flask Error: " . $response->body());
|
||||
return back()->withErrors(['api' => 'Gagal terhubung ke server prediksi.'])->withInput();
|
||||
|
||||
} catch (\Exception $e) {
|
||||
dd("Laravel Error: " . $e->getMessage());
|
||||
return back()->withErrors(['error' => 'Terjadi kesalahan: ' . $e->getMessage()])->withInput();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ public function up(): void
|
|||
$table->string('judul', 100);
|
||||
$table->text('konten');
|
||||
$table->enum('kategori', [
|
||||
'Resiko stunting',
|
||||
'Stunting',
|
||||
'Sangat Pendek',
|
||||
'Pendek',
|
||||
'Normal',
|
||||
'Ibu hamil gizi kurang',
|
||||
'Ibu hamil gizi normal',
|
||||
|
|
|
|||
|
|
@ -32,15 +32,13 @@ public function up(): void
|
|||
$table->string('judul', 100);
|
||||
$table->text('konten');
|
||||
$table->enum('kategori', [
|
||||
'Resiko tinggi stunting',
|
||||
'Stunting',
|
||||
'Sangat Pendek',
|
||||
'Pendek',
|
||||
'Normal',
|
||||
'Resiko gizi lebih',
|
||||
'Ibu hamil gizi kurang',
|
||||
'Ibu hamil gizi normal',
|
||||
'Ibu hamil gizi lebih',
|
||||
'Ibu hamil obesitas',
|
||||
'Ibu hamil risiko kek'
|
||||
])->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class DatabaseSeeder extends Seeder
|
|||
public function run(): void
|
||||
{
|
||||
\App\Models\User::create([
|
||||
'name' => 'Administrator PosSehat',
|
||||
'nama' => 'Administrator PosSehat',
|
||||
'email' => 'admin@gmail.com',
|
||||
'password' => \Illuminate\Support\Facades\Hash::make('admin123'), // Password khusus admin
|
||||
'role' => 'admin',
|
||||
|
|
|
|||
|
|
@ -25,10 +25,9 @@
|
|||
<div class="col-sm-10">
|
||||
<select name="kategori" class="form-control" required>
|
||||
<option value="">-- Pilih Kategori --</option>
|
||||
<option value="Resiko Tinggi Stunting">Resiko Stunting Rendah</option>
|
||||
<option value="Stunting">Stunting</option>
|
||||
<option value="Sangat Pendek">Sangat Pendek</option>
|
||||
<option value="Pendek">Pendek</option>
|
||||
<option value="Normal">Normal</option>
|
||||
<option value="Resiko Gizi Lebih">Resiko Gizi Lebih</option>
|
||||
|
||||
<option value="ibu hamil gizi kurang">Ibu Hamil Gizi Kurang</option>
|
||||
<option value="ibu hamil gizi normal">Ibu Hamil Gizi Normal</option>
|
||||
|
|
|
|||
|
|
@ -35,9 +35,9 @@
|
|||
<div class="info-box">
|
||||
<span class="text-bold">Panduan Rentang Z-Score (TB/U):</span><br>
|
||||
Z-Score adalah nilai standar WHO untuk mengukur tinggi badan anak dibanding anak seusianya:<br>
|
||||
• <span class="text-bold">Normal:</span> Berada di antara -2 SD sampai +3 SD.<br>
|
||||
• <span class="text-bold">Risiko Stunting:</span> Berada di bawah -2 SD (Kategori Pendek).<br>
|
||||
• <span class="text-bold">Stunting:</span> Berada di bawah -3 SD (Kategori Sangat Pendek).
|
||||
• <span class="text-bold">Normal:</span> -2 SD sampai +3 SD (Tinggi badan sesuai usia).<br>
|
||||
• <span class="text-bold">Pendek (Stunted):</span> -3 SD sampai < -2 SD.<br>
|
||||
• <span class="text-bold">Sangat Pendek (Severely Stunted):</span> Di bawah -3 SD.
|
||||
</div>
|
||||
|
||||
<table class="table">
|
||||
|
|
|
|||
Loading…
Reference in New Issue