HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/dev-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);
    }
}