public function index() { $countDiagnostic = count(auth()->user()->diagnostics); $countDiseases = Disease::count(); $countSymptom = Symptom::count(); $diagnostics = Diagnostic::with('disease')->where('user_id', auth()->user()->id)->orderBy('created_at', 'desc')->take(5)->get(); return view('user.home')->with('countSymptom', $countSymptom)->with('countDiseases', $countDiseases)->with('countDiagnostic', $countDiagnostic)->with('diagnostics', $diagnostics); }
public function home() { $countDiseases = Disease::count(); $countSymptom = Symptom::count(); $countDiagnostic = Diagnostic::count(); $lastRegistered = User::orderBy('created_at', 'desc')->take(9)->get(); return view('admin.home')->with('countDiagnostic', $countDiagnostic)->with('countSymptom', $countSymptom)->with('countDiseases', $countDiseases)->with('lastRegistered', $lastRegistered); }
public function search(SearchRequest $request) { if (!$request->has('search')) { return redirect()->route('admin::diagnosticos::index'); } $diagnostics = Diagnostic::search($request->search)->with('disease', 'user')->get(); return view('admin.diagnostic.result')->with('diagnostics', $diagnostics); }
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); }
public function show($hashed = null) { if (is_null($hashed)) { return view('user.diagnostic.show'); } $id = $this->decode($hashed); $diagnostico = Diagnostic::findOrFail($id); if ($diagnostico->user_id != auth()->id()) { return redirect()->back(); } return view('user.diagnostic.show')->with('diagnostico', $diagnostico); }
/** * Función que calcula la evolución de diagnósticos por enfermedad, anualmente * se usa -1 porque Morris toma valores desde un array con index 0 */ public function anual_state_diagnostics($state_id) { $names = $indexs = []; $diseases = Disease::all(); $diagnostics = Diagnostic::whereHas('user', function ($query) use($state_id) { $query->where('state_id', $state_id); })->with('user')->get(); // llenamos un arreglo de indices y otro de nombres para la grafica $diseases->each(function ($disease) use(&$names, &$indexs) { $indexs[] = $disease->id - 1; $names[$disease->id - 1] = $disease->name; }); $months = array_months(); $today = Carbon::create(null, null, 1); $newDate = $today->copy(); // Por cada mes mostramos cuantos diagnosticos se realizaron foreach ($months as $keyMonth => $value) { if ($keyMonth != 1) { $newDate->subDay(); $newDate->startOfMonth(); } foreach ($diseases as $disease) { $aux[$disease->id - 1] = 0; } foreach ($diagnostics as $diagnostic) { if ($diagnostic->created_at->month == $newDate->month && $diagnostic->created_at->year == $newDate->year) { $aux[$diagnostic->disease_id - 1]++; } } $arrayMonth = ['month' => $value]; // aca no se utiliza merge, para que no reindexe la union de arrays $result[] = $arrayMonth + $aux; } return response()->json(['names' => $names, 'indexs' => $indexs, 'result' => $result]); }