/**
  * 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;
 }
Пример #2
0
 /**
  * @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));
 }