public function add_rule($hash_id, Request $request) { $enfermedad = Disease::findOrFail($this->decode($hash_id)); $sintomas = Symptom::orderBy('name', 'asc')->lists('name', 'id')->toArray(); $reglas = Rule::with('symptom')->where('disease_id', $enfermedad->id)->get()->groupBy('number'); if ($request->isMethod('post')) { $this->validate($request, ['sintomas' => 'required']); if ($this->checkIfRuleExists($request->sintomas)) { alert('La regla ya existe, por favor ingrese otros síntomas', 'danger'); return redirect()->back(); } $lastRule = Rule::orderBy('id', 'desc')->first(); if (is_null($lastRule)) { $numberRule = 1; } else { $numberRule = intval($lastRule->number) + 1; } $symptoms = Symptom::findOrFail($request->sintomas); foreach ($symptoms as $symptom) { $rule = new Rule(); $rule->number = $numberRule; $rule->disease()->associate($enfermedad); $rule->symptom()->associate($symptom); $rule->save(); } alert('Se registró la regla con éxito'); return redirect()->back(); } return view('admin.disease.add_rule')->with('enfermedad', $enfermedad)->with('reglas', $reglas)->with('sintomas', $sintomas); }
public function user_diseases() { $data = []; $diagnostics = Diagnostic::where('user_id', auth()->user()->id)->get(); $groupDiagnostics = $diagnostics->groupBy('disease_id'); $groupDiagnostics->each(function ($value, $key) use(&$data) { $disease = Disease::findOrFail($key); $data[] = ['label' => $disease->name, 'value' => count($value)]; }); return response()->json($data); }