/**
  * verificar la creación de elementos durante una consulta
  * @param Request $request
  * @param Expediente $expediente
  * @return bool
  */
 public function verificarElementosCreadosEnConsulta(Request $request, Expediente $expediente)
 {
     switch ($expediente->getMedico()->getUsername()) {
         case 'johanna.vazquez':
             // odontograma
             if ($request->session()->has('odontograma')) {
                 $odontograma = $request->session()->get('odontograma');
                 $expediente->agregarOdontograma($odontograma);
             }
             // plan de tratamiento
             if ($request->session()->has('plan')) {
                 $planTratamiento = $request->session()->get('plan');
                 $expediente->agregarPlanTratamiento($planTratamiento);
             }
             break;
         default:
             break;
     }
     // guardar la información
     return $this->expedientesRepositorio->guardarElementosDeConsulta($expediente);
 }
예제 #2
0
 /**
  * generar Plan de tratamiento en PDF
  * @param Request $request
  * @param $userMedico
  * @param $idPaciente
  */
 public function plan(Request $request, $userMedico, $idPaciente)
 {
     $idPaciente = (int) base64_decode($idPaciente);
     $userMedico = base64_decode($userMedico);
     $medico = $this->usuariosRepositorio->obtenerUsuarioPorUsername($userMedico);
     $pacientesRepositorio = PacientesRepositorioFactory::crear($medico);
     $paciente = $pacientesRepositorio->obtenerPacientePorId($idPaciente);
     $expediente = $this->expedientesRepositorio->obtenerExpedientePorPacienteMedico($paciente, $medico);
     $plan = $request->session()->get('plan');
     $reporte = new PlanTratamientoJohanna($plan, $expediente);
     $reporte->SetHeaderMargin(10);
     $reporte->SetMargins(15, 50);
     $reporte->SetAutoPageBreak(true, 20);
     $reporte->generar();
 }
예제 #3
0
 /**
  * firmar
  * @param \Illuminate\Http\Request                                $request
  * @param \Siacme\Infraestructura\Citas\CitasRepositorioInterface $citasRepositorio
  * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  */
 public function firmar(Request $request, CitasRepositorioInterface $citasRepositorio)
 {
     $idPaciente = (int) base64_decode($request->get('idPaciente'));
     $userMedico = base64_decode($request->get('userMedico'));
     $medico = $this->usuariosRepositorio->obtenerUsuarioPorUsername($userMedico);
     $pacientesRepositorio = PacientesRepositorioFactory::crear($medico);
     $paciente = $pacientesRepositorio->obtenerPacientePorId($idPaciente);
     $expediente = $this->expedientesRepositorio->obtenerExpedientePorPacienteMedico($paciente, $medico);
     $expediente->setFirma(rand());
     if (!$this->expedientesRepositorio->persistir($expediente)) {
         return response(0);
     }
     // cambiar estatus a 3 = en espera
     $cita = $citasRepositorio->obtenerCitaPorPacienteMedico($paciente, $medico);
     $cita->setEstatus(new CitaEstatus(3));
     if (!$citasRepositorio->actualizaEstatus($cita)) {
         return response(0);
     }
     return response(1);
 }
예제 #4
0
 /**
  * @param Request                         $request
  * @param ExpedientesRepositorioInterface $expedientesRepositorio
  * @return \Illuminate\Http\JsonResponse
  */
 public function estatus(Request $request, ExpedientesRepositorioInterface $expedientesRepositorio)
 {
     // obtener parametros
     $respuesta = array();
     $idCita = (int) base64_decode($request->get('idCita'));
     $idEstatus = $request->get('idEstatus');
     $cita = $this->citasRepositorio->obtenerCitaPorId($idCita);
     $cita->setEstatus(new CitaEstatus((int) $idEstatus));
     if (!$this->citasRepositorio->actualizaEstatus($cita)) {
         // error
         $respuesta['respuesta'] = 0;
         return response()->json($respuesta);
     }
     // obtener el expediente
     $expediente = $expedientesRepositorio->obtenerExpedientePorPacienteMedico($cita->getPaciente(), $cita->getMedico());
     // exito
     $respuesta['respuesta'] = 1;
     // view a cargar
     $html = view('citas.citas_detalle_opciones_refrescar', compact('cita', 'expediente'));
     $respuesta['html'] = base64_encode($html);
     return response()->json($respuesta);
 }
예제 #5
0
 /**
  * generar plan en PDF
  * @param string $id
  * @param string $idPaciente
  * @param string $userMedico
  * @param ExpedientesRepositorioInterface $expedientesRepositorio
  * @param PlanTratamientoRepositorioInterface $planesRepositorio
  */
 public function generarPlan($id, $idPaciente, $userMedico, ExpedientesRepositorioInterface $expedientesRepositorio, PlanTratamientoRepositorioInterface $planesRepositorio)
 {
     $id = (int) base64_decode($id);
     $idPaciente = (int) base64_decode($idPaciente);
     $userMedico = base64_decode($userMedico);
     $medico = $this->usuariosRepositorio->obtenerUsuarioPorUsername($userMedico);
     $pacientesRepositorio = PacientesRepositorioFactory::crear($medico);
     $paciente = $pacientesRepositorio->obtenerPacientePorId($idPaciente);
     $expediente = $expedientesRepositorio->obtenerExpedientePorPacienteMedico($paciente, $medico);
     $plan = $planesRepositorio->obtenerPorId($id);
     $reporte = new PlanTratamientoJohanna($plan, $expediente);
     $reporte->SetHeaderMargin(10);
     $reporte->SetMargins(15, 50);
     $reporte->SetAutoPageBreak(true, 20);
     $reporte->generar();
 }