File: /var/www/vhost/disk-apps/demo-telemedicina.teky.com.co/app/Http/Controllers/HomeController.php
<?php
namespace Telemedicina\Http\Controllers;
use Illuminate\Http\Request;
use Telemedicina\ClinicDocument;
use Carbon\Carbon;
use Illuminate\Support\Facades\Auth;
use DateTime;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{ $anioActual= date("Y");
if (Auth::user()->rol->id==1 || Auth::user()->rol->id==3 || Auth::user()->rol->id==4 || Auth::user()->rol->id==5 || Auth::user()->rol->id==10 || Auth::user()->rol->id==11){
$encurso = count( ClinicDocument::where('state_id',3)->get());
$novedades = count(ClinicDocument::where('state_id',6)->get());
$finalizadas = count(ClinicDocument::where('state_id',4)->orWhere('state_id',5)->get());
$espera = count(ClinicDocument::where('state_id',1)->orWhere('state_id',2)->get());
$consultas = ClinicDocument::where('state_id',">",2)->whereYear('created_at',$anioActual)->whereNotNull('fecha_en_tratamiento')->get();
}
if (Auth::user()->rol->id==6 || Auth::user()->rol->id==7 || Auth::user()->rol->id==8){
$encurso = count( ClinicDocument::where('state_id',3)->where('hospital_id',Auth::user()->centro->id)->get());
$novedades = count(ClinicDocument::where('state_id',6)->where('hospital_id',Auth::user()->centro->id)->get());
$finalizadas = count(ClinicDocument::where('hospital_id',Auth::user()->centro->id)->where('state_id',4)->orWhere('state_id',5)->get());
$espera = count(ClinicDocument::where('hospital_id',Auth::user()->centro->id)->where('state_id',1)->orWhere('state_id',2)->get());
$consultas = ClinicDocument::where('hospital_id',Auth::user()->centro->id)->where('state_id',">",2)->whereYear('created_at',$anioActual)->whereNotNull('fecha_en_tratamiento')->get();
}
$menos_una_h = 0;
$una_a_dos_h = 0;
$superior_a_dos_h = 0;
foreach ($consultas as $key => $consulta) {
$tratamiento = Carbon::createFromTimeString($consulta->fecha_en_tratamiento);
$solicitud = Carbon::createFromTimeString($consulta->fecha_solicitado);
$diferencia = $tratamiento->diffInMinutes($solicitud);
if ($diferencia < 60) {
$menos_una_h = $menos_una_h +1;
}
if ($diferencia > 60 && $diferencia < 120) {
$una_a_dos_h = $una_a_dos_h +1;
}
if ($diferencia > 120) {
$superior_a_dos_h = $superior_a_dos_h +1;
}
}
// valores para los departamentos de los ultimos 7 dias
$valores = [];
$desde = date("Y-m-d",mktime(0,0,0,date("m"),date("d")-7,date("Y")));
$hasta = new DateTime();
for ($i=0; $i <32 ; $i++) {
$valores[$i]= count(ClinicDocument::where('department_id',$i+1)->whereBetween('created_at', [$desde . " 00:00:00", $hasta])->get());
}
$valores = json_encode($valores);
return view('home')
->with('encurso',$encurso)
->with('novedades',$novedades)
->with('finalizadas',$finalizadas)
->with('espera',$espera)
->with('menos_una_h',$menos_una_h)
->with('una_a_dos_h',$una_a_dos_h)
->with('superior_a_dos_h',$superior_a_dos_h)
->with('anioActual',$anioActual)
->with('valores_depart',$valores);
}
}