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')); }
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')); } }