public function saveSignosAction($factura)
 {
     $em = $this->getDoctrine()->getEntityManager();
     $factura = $em->getRepository('FacturacionBundle:Factura')->find($factura);
     if (!$factura) {
         throw $this->createNotFoundException('La informacion solicitada no esta disponible.');
     }
     $historia = $factura->getHc();
     if (!$historia) {
         /* Si la historia no existe se procedera a crear una historia en code behind, despues de crear la
          * historia se procede a visualizar el formulario de las notas.
          */
         $historia = $em->getRepository('HistoriaBundle:Notas')->createEmptyHc($factura);
     }
     $notas = new Notas();
     $request = $this->getRequest();
     $notas->setFecha(new \DateTime('now'));
     $form_nota = $this->createForm(new NotasType(), $notas);
     $form_nota->bindRequest($request);
     if ($form_nota->isValid()) {
         $usuario = $this->get('security.context')->getToken()->getUser();
         $notas->setHc($historia);
         $notas->setResponsable($usuario);
         $em->persist($notas);
         $em->flush();
         $message = "La informacion de la nota ha sido creada éxitosamente. Ahora Puede cerrar la ventana.";
         return new Response($message, 200, array('Content-Type' => 'text/plain'));
     } else {
         $message = "El formulario no es valido! verifique que la informacion sea correcta, todos los campos son numericos";
         return new Response($message, 200, array('Content-Type' => 'text/plain'));
     }
 }
 public function validarHistoria($factura, $historia, $form_historia)
 {
     $em = $this->getDoctrine()->getEntityManager();
     // se optione el role del usuario.
     $usuario = $this->get('security.context')->getToken()->getUser();
     /* Se consultan los respectivos objetos q se trabajan en la historia todo por medio de la relacion
      * OneToOne que tiene la hisotia y la factura.		*/
     $paciente = $factura->getPaciente();
     $paciente->setPertEtnica($paciente->getPE($paciente->getPertEtnica()));
     // consulto la afiliacion ya que esta contiene el nivel y el rango del paciente con su cliente
     $cliente = $factura->getCliente();
     $afiliacion = $em->getRepository('ParametrizarBundle:Afiliacion')->findOneBy(array('cliente' => $cliente->getId(), 'paciente' => $paciente->getId()));
     // Se realizan las respectivas consultas a sus respectivos repositorios para traer
     // la informacion correspondiente que se visualizara en la historia
     $paginator = $this->get('knp_paginator');
     $hc_cie = $em->getRepository('HistoriaBundle:Hc')->findHcDx($historia->getId());
     $hc_exa = $em->getRepository('HistoriaBundle:Hc')->findHcExamen($historia->getId());
     $hc_lab = $em->getRepository('HistoriaBundle:Hc')->findHcLabora($historia->getId());
     $hc_exa_all = $em->getRepository('HistoriaBundle:Examen')->findListAllExaHc($paciente->getId());
     // Visualizando las ultimas 10 notas de enfermeria realizdas a esta historia
     $listNotas = $em->getRepository('HistoriaBundle:Notas')->findByHc($historia, array('fecha' => 'DESC'));
     if ($listNotas) {
         $listNotas = $paginator->paginate($listNotas, $this->getRequest()->query->get('page', 1), 10);
     }
     // visualizo los ultimos 10 examenes del paciente en orden de fecha_r
     if ($hc_exa_all) {
         $hc_exa_all = $paginator->paginate($hc_exa_all, $this->getRequest()->query->get('page', 1), 10);
     }
     $notas = new Notas();
     $notas->setFecha(new \DateTime('now'));
     //-----------------
     $form_nota = $this->createForm(new NotasType(), $notas);
     if ($historia->getPFechaN()) {
         $historia->setPFechaN($historia->getPFechaN()->format('d/m/Y H:i'));
     }
     if ($historia->getPFechaM()) {
         $historia->setPFechaM($historia->getPFechaM()->format('d/m/Y H:i'));
     }
     // rastro de miga
     $breadcrumbs = $this->get("white_october_breadcrumbs");
     $breadcrumbs->addItem("Inicio", $this->get("router")->generate("paciente_filtro"));
     $breadcrumbs->addItem("Historia", $this->get("router")->generate("paciente_filtro"));
     $breadcrumbs->addItem("Modificar " . $paciente->getPriNombre());
     $this->get('session')->setFlash('info', 'Los campos * son obligatorios, los signos son obligatorios, hora de parto y hora de muerte no puede ser mayor o menor a 24Hrs valide que su información sea correcta para poder guardar.');
     // Visualizacion de la plantilla.
     return $this->render('HistoriaBundle:Historia:edit.html.twig', array('factura' => $factura, 'afiliacion' => $afiliacion, 'today' => new \DateTime('now'), 'paciente' => $paciente, 'usuario' => $usuario, 'historia' => $historia, 'hc_cie' => $hc_cie, 'hc_exa' => $hc_exa, 'hc_exa_all' => $hc_exa_all, 'listNotas' => $listNotas, 'hc_lab' => $hc_lab, 'form_nota' => $form_nota->createView(), 'edit_form' => $form_historia->createView()));
 }
Example #3
0
 public function saveAction($factura)
 {
     $em = $this->getDoctrine()->getEntityManager();
     $factura = $em->getRepository('FacturacionBundle:Factura')->find($factura);
     if (!$factura) {
         throw $this->createNotFoundException('La informacion solicitada no esta disponible.');
     }
     $historia = $factura->getHc();
     if (!$historia) {
         /* Si la historia no existe se procedera a crear una historia en code behind, despues de crear la
          * historia se procede a visualizar el formulario de las notas.
          */
         $historia = $em->getRepository('HistoriaBundle:Notas')->createEmptyHc($factura);
     }
     $notas = new Notas();
     $request = $this->getRequest();
     $notas->setFecha(new \DateTime('now'));
     $form = $this->createForm(new NotasType(), $notas);
     $form->bindRequest($request);
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getEntityManager();
         $usuario = $this->get('security.context')->getToken()->getUser();
         $notas->setHc($historia);
         $notas->setResponsable($usuario);
         $em->persist($notas);
         $em->flush();
         $this->get('session')->setFlash('ok', 'La informacion de la respectiva nota ha sido creada éxitosamente.');
         $perfil = false;
         foreach ($usuario->getRoles() as $role) {
             if ($role == 'ROLE_MEDICO') {
                 $perfil = true;
             }
         }
         if ($perfil) {
             return $this->redirect($this->generateUrl('historia_edit', array("factura" => $factura->getId())));
         } else {
             return $this->redirect($this->generateUrl('nota_list', array("historia" => $historia->getId())));
         }
     } else {
         return $this->validarNotas($form, $factura, $historia);
     }
 }