/** * generar lista citas PDF * @param $medico * @param $fecha */ public function pdf($medico, $fecha) { $medico = base64_decode($medico); $fecha = base64_decode($fecha); $listaCitas = $this->citasRepositorio->obtenerCitasPorMedico($medico, $fecha); $reporte = new ListaCitasPdf($listaCitas, $fecha); $reporte->SetHeaderMargin(10); $reporte->SetAutoPageBreak(true); $reporte->SetMargins(15, 25); $reporte->generar(); }
/** * guardar consulta * @param Request $request * @param ConsultasRepositorioInterface $consultasRepositorio * @param CitasRepositorioInterface $citasRepositorio * @param PlanTratamientoRepositorioInterface $planRepositorio * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response */ public function guardar(Request $request, ConsultasRepositorioInterface $consultasRepositorio, CitasRepositorioInterface $citasRepositorio, PlanTratamientoRepositorioInterface $planRepositorio) { // variable de respuesta $respuesta = ''; // parámetros de consulta $idPaciente = (int) base64_decode($request->get('idPaciente')); $userMedico = base64_decode($request->get('userMedico')); $idCita = (int) base64_decode($request->get('idCita')); $generoPlan = $request->get('generoPlan') === '0' ? false : true; $tipoAnestesia = !is_null($request->get('tipoCostoConsulta')) ? true : false; $padecimientoActual = $request->get('txtPadecimiento'); $interrogatorioAparatosSistemas = $request->get('txtInterrogatorio'); $peso = $request->get('txtPeso'); $talla = $request->get('txtTalla'); $pulso = $request->get('txtPulso'); $temperatura = $request->get('txtTemperatura'); $tensionArterial = $request->get('txtTension'); $notaMedica = $request->get('txtNota'); $comportamientoFrankl = $request->get('comportamientoFrankl'); $costoConsulta = $request->get('costoAsignadoConsulta'); $exploracion = new ExploracionFisica($peso, $talla, $pulso, $temperatura, $tensionArterial); $comportamiento = new ComportamientoFrankl($comportamientoFrankl); $consulta = new Consulta(0, $padecimientoActual, $interrogatorioAparatosSistemas, $exploracion, $notaMedica, $comportamiento, $costoConsulta); // expediente $medico = $this->usuariosRepositorio->obtenerUsuarioPorUsername($userMedico); $pacientesRepositorio = PacientesRepositorioFactory::crear($medico); $paciente = $pacientesRepositorio->obtenerPacientePorId($idPaciente); $expediente = $this->expedientesRepositorio->obtenerExpedientePorPacienteMedico($paciente, $medico); // cambiar el estatus de la cita a atendida $cita = $citasRepositorio->obtenerCitaPorId($idCita); $cita->setEstatus(new CitaEstatus(4)); if (!$citasRepositorio->actualizaEstatus($cita)) { return response(0); } // verificar los elementos generados durante la consulta (odontograma, plan) y agregarlos al expediente del paciente x if (is_null($expediente->obtenerPlanActivo())) { if ($generoPlan) { $consultasElementosServicio = new ConsultasElementosServicio($this->expedientesRepositorio); if (!$consultasElementosServicio->verificarElementosCreadosEnConsulta($request, $expediente)) { return response(0); } } } // verificar si hay interconsulta if ($request->session()->has('interconsulta')) { $interconsulta = $request->session()->get('interconsulta'); $expediente->agregarInterconsulta($interconsulta); $this->expedientesRepositorio->guardarInterconsulta($expediente); } // verificar si hay receta if ($request->session()->has('receta')) { $receta = $request->session()->get('receta'); $consulta->setReceta($receta); } // verificar si es primera vez o subsecuente el expediente para completar la información if ($expediente->primeraVez()) { $pacientesRepositorio = PacientesRepositorioFactory::crear($expediente->getMedico()); $pacientesComplemento = PacientesComplementoFactory::crear($expediente->getMedico(), $pacientesRepositorio); if (!$pacientesComplemento->crearDeHttp($request, $expediente->getPaciente())) { return response(0); } } $consulta->setExpediente($expediente); // persistir consulta if (!$consultasRepositorio->persistir($consulta)) { return response(0); } if ($tipoAnestesia === true) { if (!is_null($plan = $expediente->obtenerPlanActivo())) { $plan->atender(); if (!$planRepositorio->actualizarAtencionTratamiento($plan)) { return response(0); } } } // dientes atendidos - plan atendido if (!is_null($request->get('dienteAtendido'))) { $plan = $expediente->obtenerPlanActivo(); foreach ($request->get('dienteAtendido') as $dienteNumero) { $plan->diente((int) $dienteNumero)->atenderTratamientos(); } if (!$planRepositorio->actualizarAtencionTratamiento($plan)) { return response(0); } } // devolver elementos $respuesta['respuesta'] = 1; // id Plan $respuesta['expediente'] = $expediente->getId(); return response()->json($respuesta); }
/** * 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); }