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