/** * Metodo que sirve para generar el expediente del paciente * * @param \DGPlusbelleBundle\Entity\Paciente $paciente * */ private function generarExpediente($paciente) { $em = $this->getDoctrine()->getManager(); $expediente = new Expediente(); $user = $this->get('security.token_storage')->getToken()->getUser(); // Obtencion del apellidos y nombres del paciente $apellido = $paciente->getPersona()->getApellidos(); $nombre = $paciente->getPersona()->getNombres(); $search = array('Á', 'É', 'Í', 'Ó', 'Ú'); $replace = array('A', 'E', 'I', 'O', 'U'); $apellido = str_replace($search, $replace, $apellido); $nombre = str_replace($search, $replace, $nombre); //Generacion del numero de expediente // $numeroExp = $nombre[0].$apellido[0].date("Y"); $numeroExp = substr(strtoupper($nombre), 0, 1) . substr(strtoupper($apellido), 0, 1) . date("Y"); // $numeroExp = strtoupper ($numeroExp); // echo $numeroExp; $dql = "SELECT COUNT(exp)+1 FROM DGPlusbelleBundle:Expediente exp WHERE exp.numero LIKE :numero"; $num = $em->createQuery($dql)->setParameter('numero', '%' . $numeroExp . '%')->getResult(); //var_dump($user); $numString = $num[0]["1"]; //var_dump($numString); switch (strlen($numString)) { case 1: $numeroExp .= "00" . $numString; break; case 2: $numeroExp .= "0" . $numString; break; case 3: $numeroExp .= $numString; break; } // var_dump($numeroExp); // die(); //Seteo de valores del expediente $expediente->setFechaCreacion(new \DateTime('now')); $expediente->setHoraCreacion(new \DateTime('now')); $expediente->setEstado(true); $expediente->setNumero($numeroExp); $expediente->setPaciente($paciente); $expediente->setUsuario($user); // $paciente->setExpediente($expediente); $em->persist($expediente); $em->flush(); return $numeroExp; }
/** * @Route("/crearpaciente/ajax/verExpediente", name="crear_paciente_expediente_ajax", options={"expose"=true}) * @Method("POST") */ public function crearPacienteExpedienteAction(Request $request) { $paciente = new Paciente(); $persona = new Persona(); $expediente = new Expediente(); $nombre = $request->get('nombre'); $apellidos = $request->get('apellidos'); $telefono = $request->get('telefono'); $telefono2 = $request->get('telefono2'); $direccion = $request->get('direccion'); $email = $request->get('email'); $dui = $request->get('dui'); $estadoCivil = $request->get('estadoCivil'); $sexo = $request->get('sexo'); $ocupacion = $request->get('ocupacion'); $lugarTrabajo = $request->get('lugarTrabajo'); $fechaNacimiento = $request->get('fechaNacimiento'); $referidoPor = $request->get('referidoPor'); $personaEmergencia = $request->get('personaEmergencia'); $telefonoEmergencia = $request->get('telefonoEmergencia'); $persona->setNombres($nombre); $persona->setApellidos($apellidos); $persona->setTelefono($telefono); $persona->setTelefono2($telefono2); $persona->setDireccion($direccion); $persona->setEmail($email); $paciente->setDui($dui); $paciente->setEstadoCivil($estadoCivil); $paciente->setSexo($sexo); $paciente->setOcupacion($ocupacion); $paciente->setLugarTrabajo($lugarTrabajo); $paciente->setFechaNacimiento(new \DateTime($fechaNacimiento)); $paciente->setReferidoPor($referidoPor); $paciente->setPersonaEmergencia($personaEmergencia); $paciente->setTelefonoEmergencia($telefonoEmergencia); $em = $this->getDoctrine()->getEntityManager(); $em->persist($persona); $em->flush(); $paciente->setPersona($persona); $paciente->setFechaRegistro(new \DateTime('now')); //$paciente->setFechaNacimiento(null); $paciente->setEstado(1); $em->persist($paciente); $em->flush(); $this->generarExpediente($paciente); $id = $paciente->getId(); $expedienteNum = $em->getRepository('DGPlusbelleBundle:Expediente')->findBy(array('paciente' => $id)); $num = $expedienteNum[0]->getNumero(); return new Response(json_encode($num)); }