input('G', []); $selectedSymptoms = Symptom::whereIn('id', $selectedSymptomIds)->get(); $results = []; // Get only diseases with selected symptoms $diseases = Disease::whereHas('rules', function ($query) use ($selectedSymptomIds) { $query->whereIn('symptom_id', $selectedSymptomIds); })->get(); foreach ($diseases as $disease) { $diseaseSymptoms = $disease->rules()->pluck('symptom_id')->toArray(); $matchedSymptoms = array_intersect($diseaseSymptoms, $selectedSymptomIds); $diseaseSymptomsCount = count($diseaseSymptoms); if ($diseaseSymptomsCount > 0) { $probability = (count($matchedSymptoms) / $diseaseSymptomsCount) * 100; $results[] = [ 'disease' => $disease->name, 'probability' => $probability, 'solution' => $disease->solution, 'image_path' => $disease->image_path ]; Diagnoses::create([ 'disease_name' => $disease->name, 'probability' => $probability, 'selected_symptoms' => $selectedSymptomIds, ]); } } usort($results, function ($a, $b) { return $b['probability'] <=> $a['probability']; }); return view('diagnosed.diagnosed', [ 'results' => $results, 'selectedSymptoms' => $selectedSymptoms, ]); } public function showResult() { return view('diagnosed.diagnosed'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }