diff --git a/app/Http/Controllers/DiagnosaController.php b/app/Http/Controllers/DiagnosaController.php index e76f361..172cd3d 100644 --- a/app/Http/Controllers/DiagnosaController.php +++ b/app/Http/Controllers/DiagnosaController.php @@ -88,6 +88,7 @@ public function process(Request $request) 'id_penyakit' => $terbesar['penyakit']->id, 'nilai' => ($terbesar['nilai'] * 100) . '%', 'tanggal' => now(), + 'hasil_diagnosa' => json_encode($hasil), // Store all results in JSON format ]); if (!$riwayat) { @@ -100,6 +101,16 @@ public function process(Request $request) public function hasil($id) { $riwayat = RiwayatDiagnosa::with(['user', 'penyakit'])->findOrFail($id); - return view('layouts.diagnosa.hasildiagnosa', compact('riwayat')); + + // Get alternative diagnoses from the JSON field + $alternativeDiagnoses = []; + if (isset($riwayat->hasil_diagnosa)) { + $hasilDiagnosa = json_decode($riwayat->hasil_diagnosa, true); + + // Skip the first item (primary diagnosis) and get up to 3 alternatives + $alternativeDiagnoses = array_slice($hasilDiagnosa, 1, 3); + } + + return view('layouts.diagnosa.hasildiagnosa', compact('riwayat', 'alternativeDiagnoses')); } } diff --git a/app/Http/Controllers/HistoryController.php b/app/Http/Controllers/HistoryController.php index 0e7c5f1..dff9f66 100644 --- a/app/Http/Controllers/HistoryController.php +++ b/app/Http/Controllers/HistoryController.php @@ -31,25 +31,34 @@ public function index() public function detail($id) { $role = auth()->user()->role; - // Ambil data RiwayatDiagnosa berdasarkan ID $riwayat = RiwayatDiagnosa::with('penyakit', 'user')->findOrFail($id); - // Mengecek apakah riwayat ditemukan - if (!$riwayat) { - abort(404, 'Riwayat tidak ditemukan'); + // Ambil alternative diagnoses dari JSON hasil diagnosa + $alternativeDiagnoses = []; + if (!empty($riwayat->hasil_diagnosa)) { + $hasilDiagnosa = json_decode($riwayat->hasil_diagnosa, true); + // Ambil selain utama (index 0), misal 3 alternatif + $alternativeDiagnoses = array_slice($hasilDiagnosa, 1, 3); } - // Kirim data ke tampilan - return view('layouts.diagnosa.hasildiagnosa', compact('riwayat', 'role')); + return view('layouts.diagnosa.hasildiagnosa', compact('riwayat', 'role', 'alternativeDiagnoses')); } + public function print($id) { $riwayat = \App\Models\RiwayatDiagnosa::with('penyakit', 'user')->findOrFail($id); - $role = auth()->user()->role; - // Kirim data riwayat dan role ke tampilan - return view('layouts.diagnosa.print', compact('riwayat', 'role')); + // Decode hasil_diagnosa untuk alternatif diagnosa + $hasilDiagnosa = json_decode($riwayat->hasil_diagnosa, true); + $alternativeDiagnoses = []; + if ($hasilDiagnosa) { + // Ambil alternatif setelah utama, maksimal 3 + $alternativeDiagnoses = array_slice($hasilDiagnosa, 1, 3); + } + + // Kirim data riwayat, role, dan alternativeDiagnoses ke view + return view('layouts.diagnosa.print', compact('riwayat', 'role', 'alternativeDiagnoses')); } } diff --git a/app/Models/RiwayatDiagnosa.php b/app/Models/RiwayatDiagnosa.php index 07fe559..6fe0650 100644 --- a/app/Models/RiwayatDiagnosa.php +++ b/app/Models/RiwayatDiagnosa.php @@ -18,6 +18,7 @@ class RiwayatDiagnosa extends Model 'id_user', 'id_penyakit', 'nilai', + 'hasil_diagnosa', 'tanggal', ]; diff --git a/database/migrations/2025_05_20_074231_add_hasil_diagnosa_to_riwayat_table.php b/database/migrations/2025_05_20_074231_add_hasil_diagnosa_to_riwayat_table.php new file mode 100644 index 0000000..4b66f30 --- /dev/null +++ b/database/migrations/2025_05_20_074231_add_hasil_diagnosa_to_riwayat_table.php @@ -0,0 +1,30 @@ +longText('hasil_diagnosa')->nullable()->after('nilai'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('riwayat', function (Blueprint $table) { + // + $table->dropColumn('hasil_diagnosa'); + }); + } +}; diff --git a/resources/views/layouts/admin/daftaruser.blade.php b/resources/views/layouts/admin/daftaruser.blade.php index 9c11b10..0c35ec2 100644 --- a/resources/views/layouts/admin/daftaruser.blade.php +++ b/resources/views/layouts/admin/daftaruser.blade.php @@ -67,10 +67,10 @@