/** * @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; } }