/** * 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; }
/** * Creates a new Consulta entity. * * @Route("/create/insert/plantilla/", name="admin_consulta_insert_plantilla", options={"expose"=true}) * @Method("POST") */ public function insertPlantillaAction(Request $request) { //$entity = new Consulta(); $em = $this->getDoctrine()->getManager(); //Obtiene el usuario $idpac = $request->get('id'); $idConsulta = $request->get('idConsulta'); //var_dump($idpac); if ($idConsulta != -1) { $entity = $em->getRepository('DGPlusbelleBundle:Consulta')->find($idConsulta); } // var_dump($entity); $flag = 0; $cadena = $request->get('identidad'); $parameters = $request->request->all(); //var_dump($parameters); //die(); //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); //var_dump($pac); $user = $this->get('security.token_storage')->getToken()->getUser(); //Entidades para insertar en el proceso de la consulta de emergencia // $historial = new HistorialClinico(); $expediente = new Expediente(); //Seteo de valores $expediente->setFechaCreacion(new \DateTime('now')); $expediente->setHoraCreacion(new \DateTime('now')); $expediente->setEstado(true); //$historial->setConsulta($entity); //var_dump(!isset($parameters['idEstetica'])); if ($idConsulta != -1) { $entity->setFechaConsulta(new \DateTime('now')); } //Tipo de consulta actica, emergencia /*$dql = "SELECT tc FROM DGPlusbelleBundle:TipoConsulta tc WHERE tc.estado = :estado AND tc.id=:id"; $tipoConsulta = $em->createQuery($dql) ->setParameters(array('estado'=>1,'id'=>1)) ->getResult(); //var_dump($tipoConsulta[0]); //die(); $tipoConsulta = $tipoConsulta[0];*/ //var_dump($tipoConsulta); //die(); //$entity->setTipoConsulta($tipoConsulta); //var_dump($this->tipo); if ($idpac == -1) { $paciente_est = $em->getRepository('DGPlusbelleBundle:Paciente')->find($parameters['dgplusbellebundle_consulta']['paciente']); $entity->setPaciente($paciente_est); //var_dump($entity); $flag = 1; $accion = 'E'; $pacient = new \DGPlusbelleBundle\Entity\Paciente(); $form = $this->createCreateForm($entity, 3, $idEntidad, $pacient); } else { $paciente_est = $em->getRepository('DGPlusbelleBundle:Paciente')->find($idpac); if ($idConsulta != -1) { $form = $this->createCreateForm($entity, 2, $idEntidad, $pac); } } if ($idConsulta != -1) { $form->handleRequest($request); } //$campos = $form->get('campos')->getData(); // $indicaciones = $form->get('indicaciones')->getData(); // foreach($parameters as $p){ // $campos = $parameters->campos; //} //var_dump($parameters['dgplusbellebundle_consulta']['campos']); //die(); //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; } if ($idConsulta == -1) { } else { $paciente = $entity->getPaciente(); //$paciente = $paciente_est; $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(); //var_dump($exp); //$paciente //die(); 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(); //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(); $expediente->setNumero($numeroExp); $expediente->setPaciente($paciente); $expediente->setUsuario($user); $em->persist($expediente); } } if ($idConsulta != -1) { $usuario = $this->get('security.token_storage')->getToken()->getUser(); $empleado = $em->getRepository('DGPlusbelleBundle:Empleado')->findBy(array('persona' => $usuario->getPersona()->getId())); //$entity->setEmpleado($empleado[0]); } //$historial->setConsulta($consulta); //$historial->setExpediente($expediente); $placas = new ArrayCollection(); $path = $this->container->getParameter('photo.paciente'); $i = 0; if ($idConsulta != -1) { foreach ($entity->getPlacas2() as $key => $row) { //var_dump($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; //echo $nombreArchivo; //$seguimiento->setFotoAntes($nombreArchivo); $imagenConsulta->setFoto($nombreArchivo); $row->setFoto($nombreArchivo); //$imagenConsulta->setConsulta($entity); //array_push($placas, $imagenConsulta); $row->getFile()->move($path, $nombreArchivo); //$em->merge($seguimiento); $em->persist($row); //$em->flush(); $i++; } //var_dump($row->getFile()); } } //die(); //$entity->setPlacas2($placas); //$entity->setRegistraReceta(1); //$em->persist($entity); //$em->flush(); if (isset($parameters['idPlantilla'])) { $plantillaid = $parameters['idPlantilla']; //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(); //$valores = array(); // var_dump($usuario); //var_dump($parametros); //die(); foreach ($parametros as $key => $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); $dataReporte->setValorDetalle($parameters['valores'][$key]); /*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(); } } else { $esteticaid = $parameters['idEstetica']; //echo "estetica"; //var_dump($parameters); $dql = "SELECT det.id, det.nombre, opc.id opcid, opc.nombre opcnom " . "FROM DGPlusbelleBundle:OpcionesDetalleEstetica opc " . "JOIN opc.detalleEstetica det " . "JOIN det.estetica est " . "WHERE est.id = :esteticaid"; $parametros = $em->createQuery($dql)->setParameter('esteticaid', $esteticaid)->getResult(); //var_dump($parametros); //$valores = array(); //var_dump($parameters); //die(); foreach ($parametros as $p) { $dataReporte = new \DGPlusbelleBundle\Entity\HistorialEstetica(); $idOpcion = $p['opcid']; $detalle = $em->getRepository('DGPlusbelleBundle:OpcionesDetalleEstetica')->find($p['opcid']); //var_dump($p); $dataReporte->setdetalleEstetica($detalle); $dataReporte->setConsulta($entity); //var_dump($dataReporte); //$dataReporte->setConsultaReceta(null); //var_dump($p['opcnom']); $nparam = explode(" ", $p['opcnom']); //var_dump($parametros); //var_dump(count($nparam)); $lon = count($nparam); //var_dump($lon); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { //var_dump($key); if ($key + 1 != $lon) { //var_dump($lon); $pnombre .= '_' . $nparam[$key + 1]; } } if (isset($parameters[$pnombre])) { $dataReporte->setValor($pnombre); //var_dump("persiste"); $em->persist($dataReporte); $em->flush(); } } else { //var_dump($parameters); $claves = array(); foreach ($parameters['valores'] as $key => $reg) { if ($reg == 'true') { array_push($claves, $parameters['idParameters'][$key]); } } //Son las claves con true //var_dump($claves); foreach ($claves as $key => $idrow) { if ($idrow == $idOpcion) { $dataReporte->setValor('-'); //var_dump($parameters[$p['opcnom']]); //var_dump("persiste"); $em->persist($dataReporte); $em->flush(); unset($claves[$key]); } } //Se busca que el id de la opc exista en las claves } // $em->persist($dataReporte); // $em->flush(); } // if(isset($parameters['corporal'])){ // $compCorporal = new \DGPlusbelleBundle\Entity\ComposicionCorporal; // $estetica = $em->getRepository('DGPlusbelleBundle:Estetica')->find($parameters['dgplusbellebundle_consulta']['estetica']); // // $compCorporal->setPeso($parameters['corporal']['peso']); // $compCorporal->setGrasaCorporal($parameters['corporal']['grasa_corporal']); // $compCorporal->setAguaCorporal($parameters['corporal']['agua_corporal']); // $compCorporal->setMasaMusculo($parameters['corporal']['masa_musculo']); // $compCorporal->setValoracionFisica($parameters['corporal']['valoracion_fisica']); // $compCorporal->setEdadMetabolica($parameters['corporal']['edad_metabolica']); // $compCorporal->setDciBmr($parameters['corporal']['dci_bmr']); // $compCorporal->setMasaOsea($parameters['corporal']['masa_osea']); // $compCorporal->setGrasaVisceral($parameters['corporal']['grasa_visceral']); // $compCorporal->setFecha(new \DateTime('now')); // $compCorporal->setConsulta($entity); // $compCorporal->setEstetica($estetica); // //var_dump($parameters['corporal']['masa_osea']); // $em->persist($compCorporal); // $em->flush(); // // //// die(); // } if ($parameters['idEstetica'] == 1) { $compCorporal = new \DGPlusbelleBundle\Entity\ComposicionCorporal(); $estetica = $em->getRepository('DGPlusbelleBundle:Estetica')->find($parameters['idEstetica']); $compCorporal->setPeso($parameters['valores'][0]); $compCorporal->setGrasaCorporal($parameters['valores'][1]); $compCorporal->setAguaCorporal($parameters['valores'][2]); $compCorporal->setMasaMusculo($parameters['valores'][3]); $compCorporal->setValoracionFisica($parameters['valores'][4]); $compCorporal->setDciBmr($parameters['valores'][5]); $compCorporal->setEdadMetabolica($parameters['valores'][6]); $compCorporal->setMasaOsea($parameters['valores'][7]); $compCorporal->setGrasaVisceral($parameters['valores'][8]); $compCorporal->setFecha(new \DateTime('now')); $compCorporal->setConsulta($entity); $compCorporal->setEstetica($estetica); //var_dump($parameters['corporal']['masa_osea']); $em->persist($compCorporal); $em->flush(); // die(); } if ($parameters['idEstetica'] == 3) { $estetica = $em->getRepository('DGPlusbelleBundle:Estetica')->find($parameters['idEstetica']); $botox = new \DGPlusbelleBundle\Entity\ConsultaBotox(); foreach ($parameters['valores'] as $key => $value) { //var_dump($value['area_inyectar']); //die(); //var_dump($value); // echo $key; if ($key < 8) { $index = intval($key) % 8; // echo "-".$index; } else { $index = (intval($key) - 1) % 7; } // echo "index: ".$index."d"; switch ($index) { case 0: $botox->setAreaInyectar($value); break; case 1: $botox->setUnidades($value); break; case 2: $botox->setFechaCaducidad(new \DateTime($value)); break; case 3: $botox->setLote($value); break; case 4: $botox->setMarcaProducto($value); break; case 5: $botox->setNumAplicacion($value); break; case 6: $botox->setValor($value); break; case 7: if (isset($value)) { $botox->setRecomendaciones($value); } break; } //echo "fecha: ". $value; if ($key % 7 == 0 && $key != 0 || $key == 7) { $botox->setConsulta($entity); $botox->setEstetica($estetica); $em->persist($botox); $em->flush(); $botox = new \DGPlusbelleBundle\Entity\ConsultaBotox(); } } } // if(isset($parameters['botox'])){ // $estetica = $em->getRepository('DGPlusbelleBundle:Estetica')->find($parameters['dgplusbellebundle_consulta']['estetica']); // // foreach ($parameters['botox'] as $value) { // //var_dump($value['area_inyectar']); // //die(); // $botox = new \DGPlusbelleBundle\Entity\ConsultaBotox(); // // $botox->setAreaInyectar($value['area_inyectar']); // $botox->setUnidades($value['unidades']); // // $botox->setFechaCaducidad(new \DateTime($value['caducidad'])); // $botox->setLote($value['lote']); // $botox->setMarcaProducto($value['marca_producto']); // $botox->setNumAplicacion($value['num_aplicacion']); // $botox->setValor($value['valor']); // // if(isset($value['recomendaciones'])){ // $botox->setRecomendaciones($value['recomendaciones']); // } // // $botox->setConsulta($entity); // $botox->setEstetica($estetica); // $em->persist($botox); // $em->flush(); // } // } } if (isset($parameters['dgplusbellebundle_consulta']['sesiontratamiento'])) { $recetaid = $parameters['dgplusbellebundle_consulta']['sesiontratamiento']; $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 ($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']); //var_dump(count($nparam)); $lon = count($nparam); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { //var_dump($key); if ($key + 1 != $lon) { //var_dump($lon); $pnombre .= '_' . $nparam[$key + 1]; } } $dataReporte2->setValorDetalle($parameters[$pnombre . "2"]); } else { $dataReporte2->setValorDetalle($parameters[$p['nombre'] . "2"]); } //var_dump($p['nombre']); $em->persist($dataReporte2); $em->flush(); } } //$f = $gg; /* if($producto){ $this->establecerConsultaProducto($entity, $producto, $indicaciones); } */ $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(); } //$usuario= $this->get('security.token_storage')->getToken()->getUser(); $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; case 'E': return $this->redirect($this->generateUrl('admin_consultas_paciente')); break; } //} $response = new JsonResponse(); $response->setData(array('query' => 0)); return $response; return array('entity' => $entity, 'form' => $form->createView(), 'flag' => $flag); }