public function hcMediAction()
    {
        $request = $this->get('request');
        $hc = $request->request->get('hc');
        $medica = $request->request->get('medica');
        $em = $this->getDoctrine()->getEntityManager();
        $hc = $em->getRepository('HcBundle:Hc')->find($hc);
        $medica = $em->getRepository('HcBundle:Medicamento')->find($medica);
        $dql = $em->createQuery('SELECT
				hm.id,
				m.principioActivo
				FROM
				HcBundle:HcMedicamento hm
				JOIN
				hm.medicamento m
				WHERE
				hm.hc = :hc AND
				m.principioActivo = :principio');
        $dql->setParameter('hc', $hc);
        $dql->setParameter('principio', $medica->getPrincipioActivo());
        $medicamento = $dql->getResult();
        if (!$medicamento) {
            $entity = new HcMedicamento();
            $entity->setEstado('R');
            $entity->setHc($hc);
            $entity->setMedicamento($medica);
            $em->persist($entity);
            $em->flush();
            $response = array("responseCode" => 200, "msg" => "Medicamento solicitado correctamente");
            $response['medica']['id'] = $entity->getId();
            $response['medica']['pactivo'] = $entity->getMedicamento()->getPrincipioActivo();
            $response['medica']['cncntracn'] = $entity->getMedicamento()->getConcentracion();
            $response['medica']['ddia'] = $entity->getMedicamento()->getDosisDia();
            $response['medica']['pos'] = $entity->getMedicamento()->getPos();
            $response['medica']['tiempo'] = $entity->getMedicamento()->getTiempo();
            $response['medica']['estado'] = $entity->getEstado();
        } else {
            $response = array("responseCode" => 400, "msg" => "El Medicamento seleccionado ya esta solicitado en la historia clinica.");
        }
        $return = json_encode($response);
        return new Response($return, 200, array('Content-Type' => 'application/json'));
    }
Esempio n. 2
0
 private function autoSaveAction($id)
 {
     $entity = new Hc();
     $em = $this->getDoctrine()->getEntityManager();
     $factura = $em->getRepository('ParametrizarBundle:Factura')->find($id);
     $existe = $em->getRepository('HcBundle:Hc')->findByFactura($id);
     if (!$factura || $existe) {
         throw $this->createNotFoundException('La factura relacionada ya esta en uso o no existe.');
     }
     $paciente = $factura->getPaciente();
     $cargo = $factura->getCargo();
     // buscar la ultima hc del paciente y relacionar los datos principales a la nueva hc si no tiene hc esta se generara automaticamente.
     $HC = $em->getRepository('HcBundle:Hc')->findLastHc($paciente->getIdentificacion());
     //----- asignar los datos de la ultima historia clinica si el paciente aun no tiene hc entonces se le creare una nueva.
     if ($HC) {
         $entity->setEnfermedad($HC->getEnfermedad());
         $entity->setExaFisico($HC->getExaFisico());
         $entity->setRevSistema($HC->getRevSistema());
         $entity->setAntecedentes($HC->getAntecedentes());
         $entity->setManejo($HC->getManejo());
         $entity->setMotivo($HC->getMotivo());
         $entity->setControl($HC->getControl());
         $entity->setCtrlPrioritario($HC->getCtrlPrioritario());
         $entity->setPostfecha($HC->getPostfecha());
         $entity->setFecha(new \DateTime('now'));
         $entity->setFactura($factura);
         $em->persist($entity);
         $em->flush();
         // Verifica si de los examenes solicitados alguno fue hecho en ccv(empresa) y trae conclusión
         $cxAnt = $em->getRepository('ParametrizarBundle:Factura')->findCheckExm($paciente, $cargo);
         if (count($cxAnt) > 1) {
             // trae la informacion de la hc con respecto al id de la factura de la consulta anterior
             $hc_ant = $em->getRepository('HcBundle:Hc')->findOneBy(array('factura' => $cxAnt[1]['id']));
             // trae la informacion de los examenes que tienen $hc_ant asociado genera los examenes presentados.
             $exaPresentados = $em->getRepository('HcBundle:HcExamen')->findHcExamPresent($hc_ant->getId());
         } else {
             $exaPresentados = null;
         }
         $medi_hc = $em->getRepository('HcBundle:HcMedicamento')->findByHc($HC->getId());
         $cie_hc = $HC->getCie();
         $HC = $em->getRepository('HcBundle:Hc')->findLastHc($paciente->getIdentificacion());
         foreach ($medi_hc as $medicamentos) {
             $entity = new HcMedicamento();
             $entity->setEstado('R');
             $entity->setHc($HC);
             $entity->setMedicamento($medicamentos->getMedicamento());
             $em->persist($entity);
             $em->flush();
         }
         foreach ($cie_hc as $cies) {
             if ($HC->addCie($cies)) {
                 $em->persist($HC);
                 $em->flush();
             }
         }
     } else {
         $entity->setFactura($factura);
         $entity->setFecha(new \DateTime('now'));
         $em->persist($entity);
         $em->flush();
         $this->get('session')->setFlash('info', 'El paciente no registra visitas anteriores en el sistema.');
         return $this->redirect($this->generateUrl('factura_search'));
     }
 }