/** * Creates a new Consulta entity. * * @Route("/create/consulta-estetica", name="admin_consulta_estetica_create") * @Method("POST") * @Template("DGPlusbelleBundle:Consulta:newconpaciente.html.twig") */ public function createConsultaEsteticaAction(Request $request) { $entity = new Consulta(); $em = $this->getDoctrine()->getManager(); //Obtiene el usuario //$id= $request->get('id'); $cadena = $request->get('identidad'); //Obtener del parametro el valor que se debe usar para programar la consulta $accion = $cadena[0]; //Obtener el id del parametro $idEntidad = substr($cadena, 1); //$pac = $em->getRepository('DGPlusbelleBundle:Paciente')->find($idpac); $user = $this->get('security.token_storage')->getToken()->getUser(); //Entidades para insertar en el proceso de la consulta de emergencia $expediente = new Expediente(); //Seteo de valores $expediente->setFechaCreacion(new \DateTime('now')); $expediente->setHoraCreacion(new \DateTime('now')); $expediente->setEstado(true); $entity->setFechaConsulta(new \DateTime('now')); $form = $this->createCreateFormEstetica($entity, 1, $idEntidad); $form->handleRequest($request); $parameters = $request->request->all(); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $tratamiento = null; switch ($accion) { case 'C': $cita = $em->getRepository('DGPlusbelleBundle:Cita')->find($idEntidad); $cita->setEstado("A"); $tratamiento = $cita->getTratamiento(); $entity->setCita($cita); $em->persist($cita); $em->flush(); break; case 'P': //$entity->setCita(null); break; } $paciente = $entity->getPaciente(); $paciente->setEstado(true); $apellido = $paciente->getPersona()->getApellidos(); $nombre = $paciente->getPersona()->getNombres(); $dql = "SELECT p.id, exp.numero FROM DGPlusbelleBundle:Paciente p " . "JOIN p.expediente exp WHERE p.id=:id "; $exp = $em->createQuery($dql)->setParameter('id', $paciente->getId())->getResult(); if (count($exp) == 0) { //Generacion del numero de expediente $numeroExp = $nombre[0] . $apellido[0] . date("Y"); $dql = "SELECT COUNT(exp)+1 FROM DGPlusbelleBundle:Expediente exp WHERE exp.numero LIKE :numero"; $num = $em->createQuery($dql)->setParameter('numero', '%' . $numeroExp . '%')->getResult(); $numString = $num[0]["1"]; switch (strlen($numString)) { case 1: $numeroExp .= "00" . $numString; break; case 2: $numeroExp .= "0" . $numString; break; case 3: $numeroExp .= $numString; break; } $expediente->setNumero($numeroExp); $expediente->setPaciente($paciente); $expediente->setUsuario($user); $em->persist($expediente); } $usuario = $this->get('security.token_storage')->getToken()->getUser(); $empleado = $em->getRepository('DGPlusbelleBundle:Empleado')->findBy(array('persona' => $usuario->getPersona()->getId())); $entity->setEmpleado($empleado[0]); $placas = new ArrayCollection(); $path = $this->container->getParameter('photo.paciente'); $i = 0; foreach ($entity->getPlacas2() as $key => $row) { $imagenConsulta = new ImagenConsulta(); if ($row->getFile() != null) { //echo "vc"; $fecha = date('Y-m-d His'); $extension = $row->getFile()->getClientOriginalExtension(); $nombreArchivo = "consulta - " . $i . " - " . $fecha . "." . $extension; $imagenConsulta->setFoto($nombreArchivo); $row->setFoto($nombreArchivo); $row->getFile()->move($path, $nombreArchivo); $em->persist($row); $i++; } } $em->persist($entity); $em->flush(); $plantillaid = $parameters['dgplusbellebundle_consulta']['plantilla']; $recetaid = $parameters['dgplusbellebundle_consulta']['sesiontratamiento']; var_dump($parameters); //die(); $dql = "SELECT det.id, det.nombre " . "FROM DGPlusbelleBundle:DetallePlantilla det " . "JOIN det.plantilla pla " . "WHERE pla.id = :plantillaid"; $parametros = $em->createQuery($dql)->setParameter('plantillaid', $plantillaid)->getResult(); $dql = "SELECT det.id, det.nombre " . "FROM DGPlusbelleBundle:DetallePlantilla det " . "JOIN det.plantilla pla " . "WHERE pla.id = :plantillaid"; $parametros2 = $em->createQuery($dql)->setParameter('plantillaid', $recetaid)->getResult(); foreach ($parametros as $p) { $dataReporte = new HistorialConsulta(); $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']); $dataReporte->setDetallePlantilla($detalle); $dataReporte->setConsulta($entity); $dataReporte->setConsultaReceta(null); $nparam = explode(" ", $p['nombre']); //var_dump(count($nparam)); $lon = count($nparam); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { if ($key + 1 != $lon) { $pnombre .= '_' . $nparam[$key + 1]; } } $dataReporte->setValorDetalle($parameters[$pnombre]); } else { $dataReporte->setValorDetalle($parameters[$p['nombre']]); } $em->persist($dataReporte); $em->flush(); } foreach ($parametros2 as $p) { $dataReporte2 = new HistorialConsulta(); $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']); $dataReporte2->setDetallePlantilla($detalle); $dataReporte2->setConsulta(null); $dataReporte2->setConsultaReceta($entity); $nparam = explode(" ", $p['nombre']); $lon = count($nparam); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { //var_dump($key); if ($key + 1 != $lon) { $pnombre .= '_' . $nparam[$key + 1]; } } $dataReporte2->setValorDetalle($parameters[$pnombre . "2"]); } else { $dataReporte2->setValorDetalle($parameters[$p['nombre'] . "2"]); } $em->persist($dataReporte2); $em->flush(); } $idEmpleado = $usuario->getPersona()->getEmpleado()[0]->getId(); $empleados = $this->verificarComision($idEmpleado, null); if ($empleados[0]['suma'] >= $empleados[0]['meta'] && !$empleados[0]['comisionCompleta']) { $this->get('envio_correo')->sendEmail($empleados[0]['email'], "", "", "", "cumplio su objetivo"); $empComision = $em->getRepository('DGPlusbelleBundle:Empleado')->find($empleado[0]->getId()); $empComision->setComisionCompleta(1); $em->persist($empComision); $em->flush(); } $this->get('bitacora')->escribirbitacora("Se registro una nueva consulta", $usuario->getId()); switch ($accion) { case 'C': return $this->redirect($this->generateUrl('admin_cita')); break; case 'P': return $this->redirect($this->generateUrl('admin_paciente')); break; } } return array('entity' => $entity, 'form' => $form->createView()); }
/** * * * @Route("/pacienteconsulta/data/consulta", name="admin_consulta_guardar_ajax") */ public function dataConsultaAction(Request $request) { /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Easy set variables */ /* Array of database columns which should be read and sent back to DataTables. Use a space where * you want to insert a non-database field (for example a counter or static image) */ $id = $request->get('id'); $medico = $request->get('medico'); // $tratamiento = $request->get('tratamiento'); $tipoConsulta = $request->get('tipoConsulta'); $sucursal = $request->get('sucursal'); $observaciones = $request->get('observaciones'); $costo = $request->get('costoconsulta'); // $patologicos = $request->get('patologicos'); // $familiares = $request->get('familiares'); // $alergias = $request->get('alergias'); // // $patologicos = $request->get('patologicos'); // $familiares = $request->get('familiares'); // $alergias = $request->get('alergias'); $consulta = new Consulta(); $em = $this->getDoctrine()->getEntityManager(); $paciente = $em->getRepository('DGPlusbelleBundle:Paciente')->find($id); $empleado = $em->getRepository('DGPlusbelleBundle:Empleado')->find($medico); // $tratamientoObj = $em->getRepository('DGPlusbelleBundle:Tratamiento')->find($tratamiento); $tipoConsultaObj = $em->getRepository('DGPlusbelleBundle:TipoConsulta')->find($tipoConsulta); $sucursalObj = $em->getRepository('DGPlusbelleBundle:Sucursal')->find($sucursal); if (count($paciente) != 0) { //$persona = $em->getRepository('DGPlusbelleBundle:Persona')->find($paciente->getPersona()->getId()); $consulta->setPaciente($paciente); $consulta->setEmpleado($empleado); $consulta->setTipoConsulta($tipoConsultaObj); $consulta->setFechaConsulta(new \DateTime('now')); //hora inicio $consulta->setHoraInicio(new \DateTime('now')); //hora fin $consulta->setHoraFin(new \DateTime('now')); $consulta->setObservacion($observaciones); // $consulta->setTratamiento($tratamientoObj); $consulta->setSucursal($sucursalObj); $consulta->setReportePlantilla(1); $consulta->setCostoConsulta($costo); $em->persist($consulta); $em->flush(); return new Response(json_encode($consulta->getId())); } else { return new Response(json_encode(1)); } }