예제 #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     $espera = Espera::where('id', $id)->firstOrFail();
     $dt = new DateTime();
     $espera->update(array('admitido' => 0, 'end_date' => $dt->format('y-m-d H:i:s')));
     return Redirect::action('Historial_clinicoController@index')->with('message', 'Paciente eliminado de la lista de espera.');
 }
예제 #2
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function busqueda()
 {
     $query = Input::get('q', '');
     if ($query != '') {
         $busca = '%' . $query . '%';
         $pacientes = Pacientes::select('pacientes.id', 'numerohistoria', 'pacientes.nombre', 'pacientes.apellido1', 'pacientes.apellido2')->where(DB::raw('concat(pacientes.nombre, " ", pacientes.apellido1, " ", pacientes.apellido2)'), 'LIKE', $busca)->orWhere(DB::raw('concat(pacientes.apellido1, " ", pacientes.apellido2, " ", pacientes.nombre)'), 'LIKE', $busca)->orWhere('numerohistoria', 'LIKE', $busca)->get();
         $espera = Espera::where('admitido', 1)->leftJoin('profesionales', 'espera.profesional_id', '=', 'profesionales.id')->select('paciente_id', 'profesionales.*')->where('profesionales.activo', 1)->get();
         foreach ($pacientes as $paciente) {
             if (isset($espera[$paciente->id])) {
                 $paciente->admitido = 1;
                 $paciente->prof_asignado = $espera[$paciente->id]->nombre . ', ' . $espera[$paciente->id]->apellido1 . ' ' . $espera[$paciente->id]->apellido2;
             }
         }
         $profesionales = Profesional::orderBy('nombre')->select(DB::raw("CONCAT_WS(' ', nombre, apellido1, apellido2) AS nombre"), 'id')->lists('nombre', 'id');
     } else {
         return Redirect::action('PacientesController@buscar');
     }
     $user = User::leftJoin('sedes_users', 'users.id', '=', 'sedes_users.user_id')->leftJoin('sedes', 'sedes.id', '=', 'sedes_users.sede_id')->find(Auth::id());
     $sedes = Sedes::lists('nombre', 'id');
     return View::make('pacientes.busqueda')->with(array('profesionales' => $profesionales, 'pacientes' => $pacientes, 'espera' => $espera, 'busca' => $query, 'user' => $user, 'sedes' => $sedes));
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $paciente = Pacientes::where('id', $id)->firstOrFail();
     $user = Auth::id();
     $profesional = Profesional::where('user_id', $user)->firstOrFail();
     $profesionales_list = array();
     foreach (Profesional::all() as $p) {
         $profesionales_list[$p->id] = $p->getFullNameAttribute();
     }
     $historiales = Historial_clinico::where('paciente_id', $paciente->id)->leftJoin('tratamientos', 'historial_clinico.tratamiento_id', '=', 'tratamientos.id')->leftJoin('grupostratamientos', 'tratamientos.grupostratamientos_id', '=', 'grupostratamientos.id')->leftJoin('profesionales', 'historial_clinico.profesional_id', '=', 'profesionales.id')->select('historial_clinico.*', DB::raw("DATE_FORMAT(historial_clinico.fecha_realizacion, '%d/%m/%Y') as date"), 'profesionales.nombre as pr_n', 'profesionales.apellido1 as pr_a1', 'profesionales.apellido2 as pr_a2', 'tratamientos.nombre as t_n', 'tratamientos.id as t_id', 'grupostratamientos.nombre as t_g')->orderBy('id', 'DESC')->get();
     foreach ($historiales as $h) {
         $cobros_a_restar_de_precio = Cobros::where('historial_clinico_id', $h->id)->sum('cobro');
         //Esto es la suma de los cobros de un item de HC
         $h->pdc = $h->precio - $cobros_a_restar_de_precio;
     }
     $anticipos = Cobros::where('paciente_id', $paciente->id)->where('historial_clinico_id', 0)->sum('cobro');
     //los cobros con historial clínico = 0 son anticipos pagados desde el HC de un paciente.
     $todos_los_cobros_de_anticipo = Cobros::where('paciente_id', $paciente->id)->where('historial_clinico_id', '!=', 0)->where('tipos_de_cobro_id', 1)->sum('cobro');
     $saldo_anticipos = $anticipos - $todos_los_cobros_de_anticipo;
     $p_d_c = Historial_clinico::where('pendiente_de_cobro', 1)->where('paciente_id', $id)->get();
     $p_d_c->pendiente = 0;
     foreach ($p_d_c as $p) {
         $cobros = Cobros::where('historial_clinico_id', $p->id)->sum('cobro');
         $p_d_c->pendiente += $p->precio - $cobros;
     }
     $presupuestos = Presupuestos::where('numerohistoria', $paciente->numerohistoria)->where('aceptado', 1)->select('presupuestos.*', DB::raw("DATE_FORMAT(created_at, '%d/%m/%Y') as creado"))->orderBy('created_at', 'DESC')->get();
     $hay_presupuestos = false;
     foreach ($presupuestos as $p) {
         $presu_trats = $p->tratamientos()->get(array('presupuestos_tratamientos.*', 'tratamientos.nombre'));
         $include = false;
         foreach ($presu_trats as $pt) {
             // El presupuesto se mostrará si hay algún tratamiento aún por realizar.
             if ($pt->estado == 0) {
                 $include = true;
             }
             $pt->unidades_restantes = $pt->unidades - Historial_clinico::where('presupuesto_tratamiento_id', $pt->id)->sum('unidades');
         }
         if ($include) {
             $p->presu_tratamientos = $presu_trats;
             $hay_presupuestos = true;
         } else {
             $p->presu_tratamientos = array();
         }
     }
     $data = $this->_data_aux_historial($paciente);
     $tipos_de_cobro = Tipos_de_cobro::lists('nombre', 'id');
     $tipos_de_cobro_anticipos = Tipos_de_cobro::lists('nombre', 'id');
     unset($tipos_de_cobro_anticipos[1]);
     if ($data['saldon'] <= 0) {
         unset($tipos_de_cobro[1]);
     }
     $espera = Espera::where('paciente_id', $id)->where('admitido', 1)->first();
     // no hay presupuestos que mostrar porque todos tienen los tratamientos realizados
     if (!$hay_presupuestos) {
         $presupuestos = array();
     }
     return View::make('historial.show')->with($data)->with(array('historiales' => $historiales, 'profesional' => $profesional, 'presupuestos' => $presupuestos, 'profesionales_list' => $profesionales_list, 'tipos_de_cobro' => $tipos_de_cobro, 'paciente' => $paciente, 'p_d_c' => $p_d_c, 'espera' => $espera, 'saldo' => $saldo_anticipos, 'tipos_de_cobro_anticipos' => $tipos_de_cobro_anticipos));
 }