'Diagnosa Penyakit', 'content' => 'admin/diagnosa/index' ]; return view('admin.layouts.wrapper', $data); } public function createPasien(Request $request) { $data = [ 'name' => $request->name, 'umur' => $request->umur, 'Alamat' => $request->alamat, ]; $pasien = Pasien::create($data); session()->put('pasien_id', $pasien->id); return redirect('/admin/diagnosa/pilih-gejala'); } public function pilihGejala() { $pasien_id = session()->get('pasien_id'); if (!$pasien_id) { return redirect('/admin/diagnosa')->withErrors(['Pilih pasien terlebih dahulu']); } $data = [ 'title' => 'Diagnosa Penyakit', 'pasien' => Pasien::find($pasien_id), 'gejala' => Gejala::get(), 'gejelaTerpilih' => Diagnosa::with('gejala') ->wherePasienId($pasien_id) ->groupBy('gejala_id') ->select('gejala_id', DB::raw('MAX(id) as id')) ->get(), 'content' => 'admin/diagnosa/pilihgejala' ]; return view('admin.layouts.wrapper', $data); } public function pilih() { $gejala_id = request('gejala_id'); $cf_user = request('nilai'); $role = Role::whereGejalaId($gejala_id)->get(); foreach ($role as $r) { $data = [ 'pasien_id' => session()->get('pasien_id'), 'penyakit_id' => $r->penyakit_id, 'gejala_id' => $gejala_id, 'nilai_cf' => $cf_user, 'cf_hasil' => $cf_user * $r->bobot_cf // Perbaikan: Memperhitungkan bobot Certainty Factor ]; Diagnosa::create($data); } return redirect('/admin/diagnosa/pilih-gejala'); } public function hapusGejalaTerpilih() { $gejala_id = request('gejala_id'); $pasien_id = session()->get('pasien_id'); $diagnosa = Diagnosa::whereGejalaId($gejala_id)->wherePasienId($pasien_id)->get(); foreach ($diagnosa as $item) { $d = Diagnosa::find($item->id); $d->delete(); } return redirect('/admin/diagnosa/pilih-gejala'); } public function prosesDiagnosa() { $pasien_id = session()->get('pasien_id'); $hasil = 0; $penyakit_id = ''; $penyakit = Penyakit::get(); foreach ($penyakit as $p) { $diagnosa = Diagnosa::wherePenyakitId($p->id)->wherePasienId($pasien_id)->get(); $diagnosa_hasil = $this->hitung_cf($diagnosa); if ($diagnosa_hasil > $hasil) { $hasil = $diagnosa_hasil; $penyakit_id = $p->id; } } $pasien = Pasien::find($pasien_id); $pasien->akumulasi_cf = $hasil; $pasien->save(); $pasien->persentase = round($hasil * 100); $pasien->penyakit_id = $penyakit_id; $pasien->save(); return redirect('/admin/diagnosa/keputusan/' . $pasien_id); } function hitung_cf($data) { $cf_old = null; foreach ($data as $value) { if ($cf_old === null) { $cf_old = $value->cf_hasil; } else { $cf_new = $value->cf_hasil; $cf_old = $cf_old + ($cf_new * (1 - $cf_old)); } } return round($cf_old, 8); } public function keputusan($pasien_id) { // if ($pasien_id == null) { $pasien_id = session()->get('pasien_id'); } $data = [ 'title' => 'Hasil Diagnosa', 'pasien' => Pasien::with('penyakit')->find($pasien_id), 'gejala' => Diagnosa::with('gejala')->wherePasienId($pasien_id)->get(), 'content' => 'admin/diagnosa/keputusan' ]; return view('admin.layouts.wrapper', $data); } }