Example #1
0
 /**
  * @param Request                      $request
  * @param UsuariosRepositorioInterface $medicosRepositorio
  * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  */
 public function guardar(Request $request, UsuariosRepositorioInterface $medicosRepositorio)
 {
     $txtNombre = $request->get('txtNombre');
     $txtPaterno = $request->get('txtPaterno');
     $txtMaterno = $request->get('txtMaterno');
     $txtTelefono = $request->get('txtTelefono');
     $txtCelular = $request->get('txtCelular');
     $txtEmail = $request->get('txtEmail');
     $fecha = $request->get('fecha');
     $hora = $request->get('hora');
     $userMedico = base64_decode($request->get('medico'));
     // username del médico
     $opcion = $request->get('opcion');
     //insert or update
     $nuevoPaciente = $request->get('nuevoPaciente');
     $cita = new Cita();
     $medico = $medicosRepositorio->obtenerUsuarioPorUsername($userMedico);
     $paciente = PacientesFactory::crear($medico);
     $pacientesRepositorio = PacientesRepositorioFactory::crear($medico);
     $citaEstatus = new CitaEstatus(1);
     // setear valores al paciente
     $paciente->setNombre($txtNombre);
     $paciente->setPaterno($txtPaterno);
     $paciente->setMaterno($txtMaterno);
     $paciente->setTelefono($txtTelefono);
     $paciente->setCelular($txtCelular);
     $paciente->setEmail($txtEmail);
     $paciente->setNuevoPaciente(false);
     // si es nuevo paciente en sistema
     if ($nuevoPaciente === '1') {
         $paciente->setNuevoPaciente(true);
         // guardar paciente
         $pacientesRepositorio->persistir($paciente);
     } else {
         $paciente->setId(base64_decode($request->get('idPaciente')));
     }
     // setear valores de cita
     $cita->setFecha($fecha);
     $cita->setHora($hora);
     $cita->setMedico($medico);
     $cita->setEstatus($citaEstatus);
     $cita->setPaciente($paciente);
     // echo $opcion;exit;
     if ($opcion === '1') {
         // persistir cita
         if (!$this->citasRepositorio->persistir($cita)) {
             // error
             return response(0);
         }
         // exito!!
         return response(1);
     }
 }
 /**
  * @param \Siacme\Dominio\Pacientes\Paciente $paciente
  * @param \Siacme\Dominio\Usuarios\Usuario   $medico
  * @return Cita
  */
 public function obtenerCitaPorPacienteMedico(Paciente $paciente, Usuario $medico)
 {
     try {
         $citas = DB::table('cita')->join('cita_estatus', 'cita.idCitaEstatus', '=', 'cita_estatus.idCitaEstatus')->where('cita.idPaciente', $paciente->getId())->where('cita.UserDoctor', $medico->getUsername())->first();
         $totalCitas = count($citas);
         if ($totalCitas > 0) {
             $cita = new Cita($citas->idCita);
             //cita estatus
             $citaEstatus = new CitaEstatus();
             $citaEstatus->setId($citas->idCitaEstatus);
             $citaEstatus->setEstatus($citas->CitaEstatus);
             $cita->setFecha($citas->FechaCita);
             $cita->setHora($citas->HoraCita);
             $cita->setMedico($medico);
             $cita->setEstatus($citaEstatus);
             $cita->setPaciente($paciente);
             return $cita;
         }
         return null;
     } catch (Exception $e) {
         //mail del error para debug
         mail("*****@*****.**", "Error en el sistema SIACM", "Error: " . $e->getMessage());
         return null;
     }
 }