src/Controller/HistoriaClinicaController.php line 132

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\HistoriaClinica;
  4. use App\Entity\Receta;
  5. use App\Entity\Agenda;
  6. use App\Entity\LogAgenda;
  7. use App\Entity\Estudio;
  8. use App\Entity\ImagenesEstudio;
  9. use App\Form\HistoriaClinicaType;
  10. use App\Form\HistoriaClinicaNewType;
  11. use App\Form\HistoriaClinicaCardioType;
  12. use App\Entity\DiagnosticosHistoriaClinica;
  13. use App\Form\DiagnosticosHistoriaClinicaType;
  14. use App\Form\AntecedenteType;
  15. use App\Form\BuscaPreparacionType;
  16. use App\Form\BuscaPreparacionType_pac;
  17. use App\Form\HistoriaCertificadoType;
  18. use App\Form\EstudioTypeF;
  19. use App\Form\ImagenesEstudioType;
  20. use App\Repository\PacienteRepository;
  21. use App\Repository\HistoriaClinicaRepository;
  22. use App\Repository\AgendaRepository;
  23. use App\Repository\PacienteResultadosRepository;
  24. use App\Repository\EmpresaRepository;
  25. use App\Repository\OdontogramaRepository;
  26. use App\Repository\PreparacionRepository;
  27. use App\Repository\UserRepository;
  28. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  29. use Symfony\Component\HttpFoundation\Request;
  30. use Symfony\Component\HttpFoundation\Response;
  31. use Symfony\Component\Routing\Annotation\Route;
  32. use Knp\Component\Pager\PaginatorInterface;
  33. use Symfony\Component\Security\Core\Security;
  34. use Dompdf\Dompdf;
  35. use Dompdf\Options;
  36. // Include PhpSpreadsheet required namespaces
  37. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  38. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  39. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  40. use PhpOffice\PhpSpreadsheet\Writer\Xls;
  41. use PhpOffice\PhpSpreadsheet\Style\Border;
  42. use PhpOffice\PhpSpreadsheet\Style\Alignment;
  43. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  44. /**
  45.  * @Route("/historiaclinica")
  46.  */
  47. class HistoriaClinicaController extends AbstractController
  48. {
  49.     /**
  50.      * @var Security
  51.      */
  52.     private $security;
  53.     public function __construct(Security $security)
  54.     {
  55.        date_default_timezone_set("America/Guayaquil");
  56.        $this->security $security;
  57.     }
  58.     /**
  59.      * @Route("/", name="historia_clinica_index", methods={"GET","POST"})
  60.      */
  61.     public function index(HistoriaClinicaRepository $historiaClinicaRepositoryAgendaRepository $agendaRepositoryPaginatorInterface $paginatorRequest $request): Response
  62.     {
  63.         $user   $this->security->getUser();
  64.         date_default_timezone_set("America/Guayaquil");
  65.         $agenda = new Agenda();
  66.         //$form = $this->createForm(BuscaPreparacionType::class,$agenda);
  67.         $form $this->createForm(BuscaPreparacionType_pac::class,$agenda);
  68.         $form->handleRequest($request);
  69.         $fecha $form->get('inicio')->getData();
  70.         $fin      $form->get('fin')->getData();
  71.         $paciente $form->get('paciente')->getData();
  72.         $session $request->getSession();
  73.         $session->set('paciente',null);
  74.         $page 0;
  75.         if($request->query->get('page') != null ){
  76.             $page $request->query->get('page');
  77.             $page = ($page 1)*100;
  78.         } 
  79.         
  80.         if($fecha==null){
  81.             $fecha = new \DateTime("now");
  82.             $form->get('inicio')->setData($fecha);  
  83.         }    
  84.          if($fin==null){
  85.             $fin = new \DateTime("now");
  86.              
  87.             $form->get('fin')->setData($fin);  
  88.         } 
  89.         
  90.          $flag_sb false;
  91.         if ($form->isSubmitted() && $form->isValid()) {
  92.             $flag_sb true;
  93.         }else{ 
  94.             $fecha2 null$fin2 null;
  95.             if($request->query->get('inicio') != null ){
  96.                 $fecha2 $request->query->get('inicio');
  97.                 
  98.             } 
  99.             if($request->query->get('fin') != null ){
  100.                 $fin2 $request->query->get('fin');
  101.                 
  102.             } 
  103.             if($fecha2 != null || $fin2 != null){
  104.                 
  105.                 $fecha2 = new \DateTime($fecha2);
  106.                 $fin2 = new \DateTime($fin2);
  107.                 //dd($fecha2, $fin2);
  108.                 $form->get('inicio')->setData($fecha2);
  109.                 $form->get('fin')->setData($fin2);
  110.                 $fecha $fecha2;$fin $fin2;
  111.             } 
  112.         }  
  113.         //$query = $agendaRepository->findByAdmisionadas_Doctor(date_format($fecha,'Y-m-d'),date_format($fecha,'Y-m-d'),$user);
  114.         $query $agendaRepository->findByAdmisionadas_Doctor_Paciente(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$user,$paciente);
  115.         
  116.         $agendas $paginator->paginate(
  117.             $query,
  118.             $request->query->getInt('page',1),
  119.             100
  120.         );
  121.         return $this->render('historia_clinica/index.html.twig', [ 'agendas' => $agendas'form' => $form->createView(), 'paciente' => $paciente'inicio' => date_format($fecha,'Y-m-d'), 'fin' => date_format($fin,'Y-m-d'), 'page' => $page]);
  122.     }
  123.     /**
  124.      * @Route("/index/coordinacion", name="historia_clinica_index_coordinacion", methods={"GET","POST"})
  125.      */
  126.     public function index_coordinacion(HistoriaClinicaRepository $historiaClinicaRepositoryAgendaRepository $agendaRepositoryPaginatorInterface $paginatorRequest $request): Response
  127.     {
  128.         $user   $this->security->getUser();
  129.         date_default_timezone_set("America/Guayaquil");
  130.         $agenda = new Agenda();
  131.         //$form = $this->createForm(BuscaPreparacionType::class,$agenda);
  132.         $form $this->createForm(BuscaPreparacionType_pac::class,$agenda);
  133.         $form->handleRequest($request);
  134.         $fecha $form->get('inicio')->getData();
  135.         $fin      $form->get('fin')->getData();
  136.         $paciente $form->get('paciente')->getData();
  137.         $session $request->getSession();
  138.         $session->set('paciente',null);
  139.         $page 0;
  140.         if($request->query->get('page') != null ){
  141.             $page $request->query->get('page');
  142.             $page = ($page 1)*100;
  143.         } 
  144.         
  145.         if($fecha==null){
  146.             $fecha = new \DateTime("now");
  147.             $form->get('inicio')->setData($fecha);  
  148.         } 
  149.          if($fin==null){
  150.             $fin = new \DateTime("now");
  151.              
  152.             $form->get('fin')->setData($fin);  
  153.         } 
  154.         //$query = $agendaRepository->findByAdmisionadas(date_format($fecha,'Y-m-d'),date_format($fecha,'Y-m-d'));
  155.         
  156.         //dd($query->getResult());
  157.         
  158.          $flag_sb false;
  159.         if ($form->isSubmitted() && $form->isValid()) {
  160.             $flag_sb true;
  161.         }else{ 
  162.             $fecha2 null$fin2 null;
  163.             if($request->query->get('inicio') != null ){
  164.                 $fecha2 $request->query->get('inicio');
  165.                 
  166.             } 
  167.             if($request->query->get('fin') != null ){
  168.                 $fin2 $request->query->get('fin');
  169.                 
  170.             } 
  171.             if($fecha2 != null || $fin2 != null){
  172.                 
  173.                 $fecha2 = new \DateTime($fecha2);
  174.                 $fin2 = new \DateTime($fin2);
  175.                 //dd($fecha2, $fin2);
  176.                 $form->get('inicio')->setData($fecha2);
  177.                 $form->get('fin')->setData($fin2);
  178.                 $fecha $fecha2;$fin $fin2;
  179.             } 
  180.         }  
  181.         
  182.         
  183.         //$query = $agendaRepository->findByAdmisionadas_paciente(date_format($fecha,'Y-m-d'),date_format($fecha,'Y-m-d'),$paciente); cambio a descencente
  184.         $query $agendaRepository->findByAdmisionadas_paciente_desc(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
  185.         
  186.         $agendas $paginator->paginate(
  187.             $query,
  188.             $request->query->getInt('page',1),
  189.             100
  190.         );
  191.         
  192.         
  193.         return $this->render('historia_clinica/index.html.twig', [ 'agendas' => $agendas'form' => $form->createView(), 'paciente' => $paciente,
  194.         'inicio' => date_format($fecha,'Y-m-d'), 
  195.             'fin' => date_format($fin,'Y-m-d'), 'page' => $page]);
  196.     }
  197.     /**
  198.      * @Route("/new", name="historia_clinica_new_old", methods={"GET","POST"})
  199.      */
  200.     public function new(Request $request): Response
  201.     {
  202.         $historiaClinica = new HistoriaClinica();
  203.         $form $this->createForm(HistoriaClinicaType::class, $historiaClinica);
  204.         $form->handleRequest($request);
  205.         if ($form->isSubmitted() && $form->isValid()) {
  206.             $entityManager $this->getDoctrine()->getManager();
  207.             $entityManager->persist($historiaClinica);
  208.             $entityManager->flush();
  209.             return $this->redirectToRoute('historia_clinica_index');
  210.         }
  211.         return $this->render('historia_clinica/new.html.twig', [
  212.             'historia_clinica' => $historiaClinica,
  213.             'form' => $form->createView(),
  214.         ]);
  215.     }
  216.     /**
  217.      * @Route("/historiaclinica/new/{agenda_id}", name="historiaclinica_new", methods={"GET"})
  218.      */
  219.     public function historiaclinica_new(AgendaRepository $agendaRepository$agenda_idRequest $request ): Response
  220.     {
  221.         $ip     $request->getClientIp();
  222.         $user   $this->security->getUser();
  223.         $agenda $agendaRepository->find($agenda_id);
  224.         $historiaclinica $agenda->getHistoriaCLinica();
  225.         if($historiaclinica!=null){
  226.             return $this->json(['estado' => 'error''preparacion' => 'Ya existe Preparacion']);    
  227.         }
  228.         $historiaclinica = new HistoriaClinica();
  229.         
  230.         $entityManager $this->getDoctrine()->getManager();
  231.         $historiaclinica->setEstado('1');
  232.         $historiaclinica->setPaciente($agenda->getPaciente());
  233.         $historiaclinica->setIpCrea($ip);
  234.         $historiaclinica->setIpModifica($ip);
  235.         $historiaclinica->setUserCrea($user->getId());
  236.         $historiaclinica->setUserModifica($user->getId());
  237.         $historiaclinica->setAgenda($agenda);
  238.         $entityManager->persist($historiaclinica);
  239.         $entityManager->flush();
  240.         
  241.         if(str_contains($agenda->getProcedimiento()->getNombre(),'ECOGR')){
  242.             $estudio = new Estudio();
  243.             $estudio->setIpCrea($ip);
  244.             $estudio->setIpModifica($ip);
  245.             $estudio->setUserCrea($user->getId());
  246.             $estudio->setUserModifica($user->getId());
  247.             $estudio->setCirujano($agenda->getDoctor());
  248.             $estudio->setProcedimiento($agenda->getProcedimiento());
  249.             $estudio->setEstado(1);
  250.             $estudio->setHistoria($historiaclinica);
  251.             $entityManager->persist($estudio);
  252.             $entityManager->flush();
  253.             
  254.             $procedimientos =  $agenda->getAgendaProcedimientos();
  255.             foreach($procedimientos as $proc){
  256.                 if(str_contains($proc->getProcedimiento()->getNombre(),'ECOGR')){
  257.                     $estudiop = new Estudio();
  258.                     $estudiop->setIpCrea($ip);
  259.                     $estudiop->setIpModifica($ip);
  260.                     $estudiop->setUserCrea($user->getId());
  261.                     $estudiop->setUserModifica($user->getId());
  262.                     $estudiop->setCirujano($agenda->getDoctor());
  263.                     $estudiop->setProcedimiento($proc->getProcedimiento());
  264.                     $estudiop->setEstado(1);
  265.                     $estudiop->setHistoria($historiaclinica);
  266.                     $entityManager->persist($estudiop);
  267.                     $entityManager->flush();
  268.                 }    
  269.             }
  270.         }    
  271.         return $this->json(['estado' => 'ok''historiaclinica' => $historiaclinica->getId()]);
  272.     }
  273.     /**
  274.      * @Route("/{id}", name="historia_clinica_show", methods={"GET"})
  275.      */
  276.     public function show(HistoriaClinica $historiaClinica): Response
  277.     {
  278.         return $this->render('historia_clinica/show.html.twig', [
  279.             'historia_clinica' => $historiaClinica,
  280.         ]);
  281.     }
  282.     /**
  283.      * @Route("/{id}/atendido", name="historia_clinica_atendido", methods={"GET"})
  284.      */
  285.     public function atendido(HistoriaClinica $historiaClinica): Response
  286.     {
  287.         $historiaClinica->setEstado(2);
  288.         $this->getDoctrine()->getManager()->flush();
  289.         $user   $this->security->getUser();
  290.         
  291.         if ( $user->getTipousuario()->getNombre() <> 'ENFERMERIA'){
  292.             
  293.             return $this->redirectToRoute('historia_clinica_index');
  294.         
  295.         } else {
  296.                     
  297.             return $this->redirectToRoute('preparacion_enfermeria_coordinacion');
  298.             
  299.         }            
  300.              
  301.         /*
  302.         return $this->render('historia_clinica/show.html.twig', [
  303.             'historia_clinica' => $historiaClinica,
  304.         ]);*/
  305.     }
  306.     /**
  307.      * @Route("/{id}/edit", name="historia_clinica_edit", methods={"GET","POST"})
  308.      */
  309.     public function edit(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  310.     {
  311.         $session $request->getSession();
  312.         $session->set('paciente',$historiaClinica->getPaciente());
  313.         $form $this->createForm(HistoriaClinicaType::class, $historiaClinica);
  314.         $form->handleRequest($request);
  315.         $cform $this->createForm(HistoriaClinicaCardioType::class, $historiaClinica);
  316.         $cform->handleRequest($request);
  317.         $diagnosticosHistoriaClinica = new DiagnosticosHistoriaClinica();
  318.         $form_dx $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
  319.         $form_dx->handleRequest($request);
  320.         $preparacion $historiaClinica->getAgenda()->getPreparacion();
  321.         //dd($preparacion);
  322.         $empresa $empresaRepository->find(1); 
  323.         if ($form->isSubmitted() && $form->isValid()) {
  324.             $this->getDoctrine()->getManager()->flush();
  325.             return $this->redirectToRoute('historia_clinica_index');
  326.         }
  327.         return $this->render('historia_clinica/edit.html.twig', [
  328.             'historia_clinica' => $historiaClinica,
  329.             'preparacion'      => $preparacion,
  330.             'form'             => $form->createView(),
  331.             'form_dx'          => $form_dx->createView(),
  332.             'cform'            => $cform->createView(),
  333.             'empresa'          => $empresa
  334.         ]);
  335.     }
  336.     
  337.     /**
  338.      * @Route("/{id}/edit/new", name="historia_clinica_edit_new", methods={"GET","POST"})
  339.      */
  340.     public function edit_new(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepositorySessionInterface $session,PreparacionRepository $preparacionRepository): Response
  341.     {
  342.         $preparaciones $preparacionRepository->buscaPreparacionxPaciente($historiaClinica->getPaciente()->getId());
  343.         //dd($preparaciones->getResult());
  344.         $currentUrl $request->getRequestUri();
  345.         $session->set('previous_url'$currentUrl);//dd($currentUrl);
  346.          
  347.         $agenda $historiaClinica->getAgenda();
  348.         $preparacion $agenda->getPreparacion();
  349.         $session $request->getSession();
  350.         $session->set('paciente',$historiaClinica->getPaciente());
  351.         $form $this->createForm(HistoriaClinicaNewType::class, $historiaClinica);
  352.         $form->handleRequest($request);
  353.         $cform $this->createForm(HistoriaClinicaCardioType::class, $historiaClinica);
  354.         $cform->handleRequest($request);
  355.         $diagnosticosHistoriaClinica = new DiagnosticosHistoriaClinica();
  356.         $form_dx $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
  357.         $form_dx->handleRequest($request);
  358.         $preparacion $historiaClinica->getAgenda()->getPreparacion();
  359.         //dd($preparacion);
  360.         $empresa $empresaRepository->find(1); 
  361.         //dd($empresa);
  362.         $paciente $historiaClinica->getPaciente();
  363.         $form->get('antecedentes_familiares')->setData($paciente->getAntecedentesFamiliares());
  364.         $form->get('mas_antecedentes_personales')->setData($paciente->getMasAntecedentesPersonales());
  365.         //$form->get('antecedentes_quirurgicos')->setData($paciente->getAntecedentesQuirurgicos());
  366.         $form->get('observacion_paciente')->setData($paciente->getObservacion());
  367.         $form->get('medicacion')->setData($paciente->getMedicacion());
  368.         $form->get('alergias')->setData($paciente->getAlergias());
  369.         $form->get('alcohol')->setData($paciente->getAlcohol());
  370.         //$form->get('tabaco')->setData($paciente->getTabaco());
  371.         //$form->get('drogas')->setData($paciente->getDrogas());
  372.         $presion  ''
  373.         $estatura '';
  374.         $peso     '';
  375.         if($preparacion != null){
  376.             $presion  $preparacion->getPresion(); 
  377.             $estatura $preparacion->getEstatura();
  378.             $peso     $preparacion->getPeso();
  379.         }
  380.         
  381.         $form->get('presion')->setData($presion);
  382.         $form->get('estatura')->setData($estatura);
  383.         $form->get('peso')->setData($peso);
  384.         
  385.         if ($form->isSubmitted() && $form->isValid()) {
  386.             if($preparacion != null){
  387.                 $preparacion->setPresion($presion); 
  388.                 $preparacion->setEstatura($estatura);
  389.                 $preparacion->setPeso($peso);
  390.             }
  391.             $this->getDoctrine()->getManager()->flush();
  392.             return $this->redirectToRoute('historia_clinica_index');
  393.         }
  394.         
  395.         $estudios $historiaClinica->getEstudios();
  396.         if(count($estudios) > 0){
  397.             $estudio $estudios[0];
  398.         }else{
  399.             $estudio = new Estudio();
  400.         }
  401.         $formx $this->createForm(EstudioTypeF::class, $estudio);
  402.         $formx->handleRequest($request);
  403.         
  404.         $imagenesestudio = new ImagenesEstudio;
  405.         $iform $this->createForm(ImagenesEstudioType::class, $imagenesestudio);
  406.         $iform->handleRequest($request);
  407.         return $this->render('historia_clinica/edit_new.html.twig', [
  408.             'historia_clinica' => $historiaClinica,
  409.             'preparacion'      => $preparacion,
  410.             'form'             => $form->createView(),
  411.             'form_dx'          => $form_dx->createView(),
  412.             'cform'            => $cform->createView(),
  413.             'empresa'          => $empresa,
  414.             'formx'            => $formx->createView(),
  415.             'estudio'          => $estudio,
  416.             'iform'            => $iform->createView(),
  417.             'preparaciones'    => $preparaciones->getResult(),
  418.         ]);
  419.     }
  420.     
  421.      /**
  422.      * @Route("/estudio/{id}/sedit/storage", name="historia_edit_archivo_storage", methods={"GET","POST"})
  423.      */
  424.     public function historia_edit_storage(Request $requestHistoriaClinica $historiaClinica): Response
  425.     {
  426.      
  427.         $ip     $request->getClientIp();
  428.         $user   $this->security->getUser();
  429.         
  430.         $estudios $historiaClinica->getEstudios();
  431.         if(count($estudios) > 0){
  432.             $estudio $estudios[0];
  433.         }else{
  434.             $estudio = new Estudio();
  435.             $estudio->setHistoria($historiaClinica);
  436.             $estudio->setIpCrea($ip);
  437.             $estudio->setIpModifica($ip);
  438.             $estudio->setUserCrea($user->getId());
  439.             $estudio->setUserModifica($user->getId());
  440.             $estudio->setEstado(1);
  441.             $entityManager $this->getDoctrine()->getManager();
  442.             $entityManager->persist($estudio);
  443.             $entityManager->flush();
  444.         }
  445.         if($estudio->getProcedimiento() == null){
  446.             $procedimiento $historiaClinica->getAgenda()->getProcedimiento();
  447.             $estudio->setProcedimiento($procedimiento);
  448.         }
  449.         $formx $this->createForm(EstudioTypeF::class, $estudio);
  450.         $formx->handleRequest($request);
  451.         if ($formx->isSubmitted() && $formx->isValid()) {
  452.             
  453.             $brochureFile $formx->get('archivo')->getData();
  454.             //dd($brochureFile);
  455.             if ($brochureFile) {
  456.                 $originalFilename pathinfo($brochureFile->getClientOriginalName(), PATHINFO_FILENAME);
  457.                 
  458.                 // this is needed to safely include the file name as part of the URL
  459.                 //$safeFilename = $slugger->slug($originalFilename);
  460.                 $safeFilename $estudio->getHistoria()->getPaciente()->getCedula().'_'.$estudio->getId().'_'.date('YmdHis');
  461.                 //$newFilename = $safeFilename.'-'.uniqid().'.'.$brochureFile->guessExtension();
  462.                 $newFilename $safeFilename.'.'.$brochureFile->guessExtension();
  463.                 // Move the file to the directory where brochures are stored
  464.                 try {
  465.                     $brochureFile->move(
  466.                         $this->getParameter('directorio_estudios'),
  467.                         $newFilename
  468.                     );
  469.                 } catch (FileException $e) {
  470.                     // ... handle exception if something happens during file upload
  471.                 }
  472.                 $estudio->setArchivo($newFilename);
  473.                 $recargar 1;
  474.                 
  475.             }
  476.             
  477.             $this->getDoctrine()->getManager()->flush();
  478.             return $this->json(['estado' => 'ok''estudio' => $estudio->getId(),'recargar' => $recargar]); 
  479.         }
  480.         return $this->json(['estado' => 'ok''estudio' => $estudio->getId(),'recargar' => $recargar]); 
  481.     }
  482.     /**
  483.      * @Route("/{id}/edit/ajax", name="historia_clinica_edit_ajax", methods={"POST"})
  484.      */
  485.     public function edit_ajax(Request $requestHistoriaClinica $historiaClinica): Response
  486.     {
  487.         $form $this->createForm(HistoriaClinicaType::class, $historiaClinica);
  488.         $form->handleRequest($request);
  489.         $ip     $request->getClientIp();
  490.         $user   $this->security->getUser();
  491.         if ($form->isSubmitted() && $form->isValid()) {
  492.             $historiaClinica->setIpModifica($ip);
  493.             $historiaClinica->setUserModifica($user->getId());
  494.             $historiaClinica->setenfermedadActual($historiaClinica->getEvolucion());
  495.             $this->getDoctrine()->getManager()->flush();
  496.             return $this->json(['estado' => 'ok''historiaclinica' => $historiaClinica->getId()]);
  497.         }
  498.         return $this->json(['estado' => 'error''historiaclinica' => null]);
  499.     }
  500.     
  501.     /**
  502.      * @Route("/{id}/edit/ajax/new", name="historia_clinica_edit_ajax_new", methods={"POST"})
  503.      */
  504.     public function edit_ajax_new(Request $requestHistoriaClinica $historiaClinicaSessionInterface $session): Response
  505.     {
  506.         
  507.         
  508.         $agenda $historiaClinica->getAgenda();
  509.         $preparacion $agenda->getPreparacion();
  510.         
  511.         $form $this->createForm(HistoriaClinicaNewType::class, $historiaClinica);
  512.         $form->handleRequest($request);
  513.         $ip     $request->getClientIp();
  514.         $user   $this->security->getUser();
  515.         if ($form->isSubmitted() && $form->isValid()) {
  516.             
  517.             $paciente $historiaClinica->getPaciente();
  518.             
  519.             $observacion_paciente $form->get('observacion_paciente')->getData();
  520.             $af $form->get('antecedentes_familiares')->getData();
  521.             $ap $form->get('mas_antecedentes_personales')->getData();
  522.             //$aq = $form->get('antecedentes_quirurgicos')->getData();
  523.             
  524.             $med $form->get('medicacion')->getData();
  525.             $ale $form->get('alergias')->getData();
  526.             $alc $form->get('alcohol')->getData();
  527.             //$tab = $form->get('tabaco')->getData();
  528.             //$dro = $form->get('drogas')->getData();
  529.             
  530.             $paciente->setObservacion($observacion_paciente);
  531.             $paciente->setAntecedentesFamiliares($af);
  532.             $paciente->setMasAntecedentesPersonales($ap);
  533.             //$paciente->setAntecedentesQuirurgicos($aq);
  534.             
  535.             $paciente->setMedicacion($med);
  536.             $paciente->setAlergias($ale);
  537.             $paciente->setAlcohol($alc);
  538.             //$paciente->setTabaco($tab);
  539.             //$paciente->setDrogas($dro);
  540.             
  541.             $presion  $form->get('presion')->getData();
  542.             $estatura $form->get('estatura')->getData();
  543.             $peso     $form->get('peso')->getData();
  544.             
  545.             if($preparacion != null){
  546.                 $preparacion->setPresion($presion); 
  547.                 $preparacion->setEstatura($estatura);
  548.                 $preparacion->setPeso($peso);
  549.             }
  550.         
  551.             $historiaClinica->setIpModifica($ip);
  552.             $historiaClinica->setUserModifica($user->getId());
  553.             $historiaClinica->setenfermedadActual($historiaClinica->getEvolucion());
  554.             $this->getDoctrine()->getManager()->flush();
  555.             return $this->json(['estado' => 'ok''historiaclinica' => $historiaClinica->getId()]);
  556.         }
  557.         return $this->json(['estado' => 'error''historiaclinica' => null]);
  558.     }
  559.     /**
  560.      * @Route("/{id}/cardio/store/hc", name="historia_clinica_store_cardio", methods={"POST"})
  561.      */
  562.     public function store_cardio(Request $requestHistoriaClinica $historiaClinica): Response
  563.     {
  564.         $cform $this->createForm(HistoriaClinicaCardioType::class, $historiaClinica);
  565.         $cform->handleRequest($request);
  566.         $ip     $request->getClientIp();
  567.         $user   $this->security->getUser();
  568.         if ($cform->isSubmitted() && $cform->isValid()) {
  569.             
  570.             $this->getDoctrine()->getManager()->flush();
  571.             return $this->json(['estado' => 'ok''historiaclinica' => $historiaClinica->getId()]);
  572.         }
  573.         return $this->json(['estado' => 'error''historiaclinica' => null]);
  574.     }
  575.     
  576.     /**
  577.      * @Route("/{id}", name="historia_clinica_delete", methods={"DELETE"})
  578.      */
  579.     public function delete(Request $requestHistoriaClinica $historiaClinica): Response
  580.     {
  581.         if ($this->isCsrfTokenValid('delete'.$historiaClinica->getId(), $request->request->get('_token'))) {
  582.             $entityManager $this->getDoctrine()->getManager();
  583.             $entityManager->remove($historiaClinica);
  584.             $entityManager->flush();
  585.         }
  586.         return $this->redirectToRoute('historia_clinica_index');
  587.     }
  588.     /**
  589.      * @Route("/{id}/edit/antecedente", name="historia_clinica_antecedente_edit", methods={"GET"})
  590.      */
  591.     public function edit_antecedente(Request $requestHistoriaClinica $historiaClinica): Response
  592.     {
  593.         $paciente $historiaClinica->getPaciente();
  594.         $form $this->createForm(AntecedenteType::class, $paciente);
  595.         $form->handleRequest($request);
  596.         return $this->render('historia_clinica/edit_antecedente.html.twig', [
  597.             'historiaClinica'=> $historiaClinica,
  598.             'paciente'       => $paciente,
  599.             'form'           => $form->createView(),
  600.         ]);
  601.     }
  602.     /**
  603.      * @Route("/{id}/edit/antecedente/update", name="historia_clinica_antecedente_update", methods={"POST"})
  604.      */
  605.     public function edit_antecedente_update(Request $requestHistoriaClinica $historiaClinicaPacienteRepository $pacienteRepository): Response
  606.     {
  607.         $paciente $historiaClinica->getPaciente();
  608.         $form $this->createForm(AntecedenteType::class, $paciente);
  609.         $form->handleRequest($request);
  610.         if ($form->isSubmitted() && $form->isValid()) {
  611.             //dd($form->get('enfermedad')->getData());
  612.             //$paciente->setEnfermedad($form->get('enfermedad')->getData());
  613.             $paciente->setMasAntecedentesPersonales($form->get('mas_antecedentes_personales')->getData());
  614.             $paciente->setAlergias($form->get('alergias')->getData());
  615.             $paciente->setAlcohol($form->get('alcohol')->getData());
  616.             $paciente->setDrogas($form->get('drogas')->getData());
  617.             $paciente->setAntecedentesQuirurgicos($form->get('antecedentes_quirurgicos')->getData());
  618.             $paciente->setAntecedentesFamiliares($form->get('antecedentes_familiares')->getData());
  619.             $entityManager $this->getDoctrine()->getManager();
  620.             $entityManager->persist($paciente);
  621.             $entityManager->flush();
  622.             return $this->json(['estado' => 'ok']);
  623.         }
  624.         return $this->json(['estado' => 'error']);
  625.         
  626.     }
  627.     /**
  628.      * @Route("/imprimir/historia/{id}", name="historia_imprimir", methods={"GET"})
  629.      */
  630.     public function imprimir_historia(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  631.     {
  632.         // Configure Dompdf segĂºn sus necesidades
  633.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  634.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  635.         $historia $historiaClinica;
  636.         $receta $historia->getRecetas();
  637.         //$empresa  = $empresaRepository->find('1');
  638.         $unidad $historiaClinica->getAgenda()->getSala()->getUnidad();
  639.         $empresa $empresaRepository->find($unidad->getId());
  640.         //dd();
  641.         $pdfOptions = new Options();
  642.         $pdfOptions->set('defaultFont''Arial');
  643.         $pdfOptions->set('isRemoteEnabled'TRUE);
  644.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  645.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  646.         // Crea una instancia de Dompdf con nuestras opciones
  647.         $dompdf = new Dompdf($pdfOptions);
  648.         
  649.         // Recupere el HTML generado en nuestro archivo twig
  650.         $html $this->renderView('historia_clinica/historia_pdf.html.twig',[
  651.             'historia' => $historia,
  652.             'empresa'  => $empresa
  653.         ]);
  654.         
  655.         // Cargar HTML en Dompdf
  656.         $dompdf->loadHtml($html);
  657.         //$dompdf->loadHtmlFile($html);
  658.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  659.         $dompdf->setPaper('A4''portrait');
  660.         //dompdf->setPaper('A4', 'landscape');
  661.         // Renderiza el HTML como PDF
  662.         $dompdf->render();
  663.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  664.         $dompdf->stream($historia->getPaciente()->getApellido1().".pdf", [
  665.             "Attachment" => false
  666.         ]);
  667.     }
  668.     
  669.         /**
  670.      * @Route("/imprimir/historia_new/{id}", name="historia_imprimir_new", methods={"GET"})
  671.      */
  672.     public function imprimir_historia_new(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  673.     {
  674.         // Configure Dompdf segĂºn sus necesidades
  675.         $historia $historiaClinica;
  676.         $receta $historia->getRecetas();
  677.         $unidad $historiaClinica->getAgenda()->getSala()->getUnidad();
  678.         $empresa $empresaRepository->find($unidad->getId());
  679.     
  680.         $pdfOptions = new Options();
  681.         $pdfOptions->set('defaultFont''Arial');
  682.         $pdfOptions->set('isRemoteEnabled'TRUE);
  683.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  684.         // Crea una instancia de Dompdf con nuestras opciones
  685.         $dompdf = new Dompdf($pdfOptions);
  686.         
  687.         // Recupere el HTML generado en nuestro archivo twig
  688.         $html $this->renderView('historia_clinica/historia_pdf_new.html.twig',[
  689.             'historia' => $historia,
  690.             'empresa'  => $empresa,
  691.             'unidad'   => $unidad
  692.         ]);
  693.         
  694.         // Cargar HTML en Dompdf
  695.         $dompdf->loadHtml($html);
  696.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  697.         $dompdf->setPaper('A4''portrait');
  698.         // Renderiza el HTML como PDF
  699.         $dompdf->render();
  700.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  701.         return new Response(
  702.             $dompdf->output(),
  703.             200,
  704.             [
  705.                 'Content-Type'        => 'application/pdf',
  706.                 'Content-Disposition' => 'inline; filename="Historia_'.$historia->getPaciente()->getCedula().'.pdf"',
  707.             ]
  708.         );
  709.     }
  710.     /**
  711.      * @Route("/cedula/jpg/to/pdf/{id}", name="historia_imprimir_cedula_jpg", methods={"GET"})
  712.      */
  713.     public function imprimir_cedula_jpg(Request $requestHistoriaClinica $historiaClinica): Response
  714.     {
  715.         // Configure Dompdf segĂºn sus necesidades
  716.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  717.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  718.         $historia $historiaClinica;
  719.         $receta $historia->getRecetas();
  720.         //dd();
  721.         $pdfOptions = new Options();
  722.         $pdfOptions->set('defaultFont''Arial');
  723.         $pdfOptions->set('isRemoteEnabled'TRUE);
  724.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  725.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  726.         // Crea una instancia de Dompdf con nuestras opciones
  727.         $dompdf = new Dompdf($pdfOptions);
  728.         
  729.         // Recupere el HTML generado en nuestro archivo twig
  730.         $html $this->renderView('historia_clinica/cedula_jpg.html.twig',[
  731.             'historia' => $historia,
  732.         ]);
  733.         
  734.         // Cargar HTML en Dompdf
  735.         $dompdf->loadHtml($html);
  736.         //$dompdf->loadHtmlFile($html);
  737.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  738.         $dompdf->setPaper('A4''portrait');
  739.         //dompdf->setPaper('A4', 'landscape');
  740.         // Renderiza el HTML como PDF
  741.         $dompdf->render();
  742.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  743.         $dompdf->stream($historia->getPaciente()->getApellido1().".pdf", [
  744.             "Attachment" => false
  745.         ]);
  746.     }
  747.     
  748.     /**
  749.      * @Route("/{id}/obtener/ajax", name="historia_clinica_obtener_ajax", methods={"GET"})
  750.      */
  751.     public function obtener_ajax(HistoriaClinica $historiaClinica): Response
  752.     {
  753.         $receta '';
  754.         if($historiaClinica->getRecetas()->count() > 0){
  755.             $receta $historiaClinica->getRecetas()->first()->getObservacion();    
  756.         }
  757.         
  758.         
  759.         return $this->json([
  760.             'motivo' => $historiaClinica->getMotivo(), 
  761.             'enfermedad_actual' => $historiaClinica->getEnfermedadActual(),
  762.             'revision_actual_organos_y_sistemas' => $historiaClinica->getRevisionActualOrganosYSistemas(),
  763.             'examen_fisico' => $historiaClinica->getExamenFisico(),
  764.             'indicaciones' => $historiaClinica->getIndicaciones(),
  765.             'evolucion' => $historiaClinica->getEvolucion(),
  766.             'receta_observacion' => $receta,
  767.         ]);
  768.     }
  769.     /**
  770.      * @Route("/imprimir/acta_entrega/{id_agenda}", name="acta_entrega_imprimir", methods={"GET"})
  771.      */
  772.     public function imprimir_acta_entrega(Request $request$id_agenda): Response
  773.     {
  774.         $pdfOptions = new Options();
  775.         $pdfOptions->set('defaultFont''Arial');
  776.         $pdfOptions->set('isRemoteEnabled'TRUE);
  777.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  778.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  779.         // Crea una instancia de Dompdf con nuestras opciones
  780.         $dompdf = new Dompdf($pdfOptions);
  781.         
  782.         // Recupere el HTML generado en nuestro archivo twig
  783.         $html $this->renderView('historia_clinica/acta_entrega_pdf.html.twig', [
  784.         ]);
  785.         
  786.         // Cargar HTML en Dompdf
  787.         $dompdf->loadHtml($html);
  788.         //$dompdf->loadHtmlFile($html);
  789.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  790.         //$dompdf->setPaper('A4', 'portrait');
  791.         $dompdf->setPaper('A4''landscape');
  792.         // Renderiza el HTML como PDF
  793.         $dompdf->render();
  794.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  795.         $dompdf->stream("AE_", [
  796.             "Attachment" => false
  797.         ]);
  798.     }
  799.     /**
  800.      * @Route("/imprimir/historia/{id_agenda}/ae", name="ae_imprimir", methods={"GET"})
  801.      */
  802.     public function imprimir_ae(Request $request$id_agendaAgendaRepository $agendaRepositoryEmpresaRepository $empresaRepository ): Response
  803.     {
  804.         // Configure Dompdf segĂºn sus necesidades
  805.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  806.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  807.         $agenda $agendaRepository->find($id_agenda);
  808.         $empresa $empresaRepository->find(1);
  809.         $arr_mes = ['''ENERO''FEBRERO''MARZO''ABRIL''MAYO''JUNIO''JULIO''AGOSTO''SEPTIEMBRE''OCTUBRE''NOVIEMBRE''DICIEMBRE'];
  810.         $mes date_format($agenda->getinicio(), 'm');
  811.         $lmes $arr_mes[intval($mes)];
  812.         
  813.         $pdfOptions = new Options();
  814.         $pdfOptions->set('defaultFont''Arial');
  815.         $pdfOptions->set('isRemoteEnabled'TRUE);
  816.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  817.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  818.         // Crea una instancia de Dompdf con nuestras opciones
  819.         $dompdf = new Dompdf($pdfOptions);
  820.         $filename './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
  821.         $file_exists file_exists($filename);
  822.         
  823.         // Recupere el HTML generado en nuestro archivo twig
  824.         $html $this->renderView('historia_clinica/ae_pdf.html.twig',[
  825.             'agenda'      => $agenda,
  826.             'empresa'     => $empresa,
  827.             'lmes'        => $lmes,
  828.             'file_exists' => $file_exists,
  829.         ]);
  830.         
  831.         // Cargar HTML en Dompdf
  832.         $dompdf->loadHtml($html);
  833.         //$dompdf->loadHtmlFile($html);
  834.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  835.         $dompdf->setPaper('A4''portrait');
  836.         //dompdf->setPaper('A4', 'landscape');
  837.         // Renderiza el HTML como PDF
  838.         $dompdf->render();
  839.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  840.         $dompdf->stream("mypdf.pdf", [
  841.             "Attachment" => false
  842.         ]);
  843.     }
  844.     
  845.     /**
  846.      * @Route("/imprimir/historia/{id_agenda}/ac", name="ac_imprimir", methods={"GET"})
  847.      */
  848.     public function imprimir_ac (Request $request$id_agendaAgendaRepository $agendaRepositoryEmpresaRepository $empresaRepository ): Response
  849.     {
  850.        
  851.          // Configure Dompdf segĂºn sus necesidades
  852.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  853.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  854.         $agenda $agendaRepository->find($id_agenda);
  855.         $empresa $empresaRepository->find(1);
  856.         $arr_mes = ['''ENERO''FEBRERO''MARZO''ABRIL''MAYO''JUNIO''JULIO''AGOSTO''SEPTIEMBRE''OCTUBRE''NOVIEMBRE''DICIEMBRE'];
  857.         $mes date_format($agenda->getinicio(), 'm');
  858.         $lmes $arr_mes[intval($mes)];
  859.         
  860.         $pdfOptions = new Options();
  861.         $pdfOptions->set('defaultFont''Arial');
  862.         $pdfOptions->set('isRemoteEnabled'TRUE);
  863.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  864.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  865.         // Crea una instancia de Dompdf con nuestras opciones
  866.         $dompdf = new Dompdf($pdfOptions);
  867.         $filename './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
  868.         $file_exists file_exists($filename);
  869.         
  870.         // Recupere el HTML generado en nuestro archivo twig
  871.         $html $this->renderView('historia_clinica/ac_pdf.html.twig',[
  872.             'agenda'      => $agenda,
  873.             'empresa'     => $empresa,
  874.             'lmes'        => $lmes,
  875.             'file_exists' => $file_exists,
  876.         ]);
  877.         
  878.         // Cargar HTML en Dompdf
  879.         $dompdf->loadHtml($html);
  880.         //$dompdf->loadHtmlFile($html);
  881.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  882.         $dompdf->setPaper('A4''portrait');
  883.         //dompdf->setPaper('A4', 'landscape');
  884.         // Renderiza el HTML como PDF
  885.         $dompdf->render();
  886.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  887.         $dompdf->stream("mypdf.pdf", [
  888.             "Attachment" => false
  889.         ]);
  890.     }
  891.     /**
  892.      * @Route("/cardiologia/{id_agenda}", name="cardiologia", methods={"GET"})
  893.      */
  894.     public function cardiologia(Request $request$id_agendaAgendaRepository $agendaRepositoryEmpresaRepository $empresaRepository ): Response
  895.     {
  896.         // Configure Dompdf segĂºn sus necesidades
  897.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  898.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  899.         $agenda $agendaRepository->find($id_agenda);
  900.         $empresa $empresaRepository->find(1);
  901.         $arr_mes = ['''ENERO''FEBRERO''MARZO''ABRIL''MAYO''JUNIO''JULIO''AGOSTO''SEPTIEMBRE''OCTUBRE''NOVIEMBRE''DICIEMBRE'];
  902.         $mes date_format($agenda->getinicio(), 'm');
  903.         $lmes $arr_mes[intval($mes)];
  904.         
  905.         $pdfOptions = new Options();
  906.         $pdfOptions->set('defaultFont''Arial');
  907.         $pdfOptions->set('isRemoteEnabled'TRUE);
  908.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  909.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  910.         // Crea una instancia de Dompdf con nuestras opciones
  911.         $dompdf = new Dompdf($pdfOptions);
  912.         $filename './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
  913.         $file_exists file_exists($filename);
  914.         
  915.         // Recupere el HTML generado en nuestro archivo twig
  916.         $html $this->renderView('historia_clinica/cardiologia_pdf.html.twig',[
  917.             'agenda'      => $agenda,
  918.             'empresa'     => $empresa,
  919.             'lmes'        => $lmes,
  920.             'file_exists' => $file_exists,
  921.         ]);
  922.         
  923.         // Cargar HTML en Dompdf
  924.         $dompdf->loadHtml($html);
  925.         //$dompdf->loadHtmlFile($html);
  926.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  927.         $dompdf->setPaper('A4''portrait');
  928.         //dompdf->setPaper('A4', 'landscape');
  929.         // Renderiza el HTML como PDF
  930.         $dompdf->render();
  931.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  932.         $dompdf->stream("mypdf.pdf", [
  933.             "Attachment" => false
  934.         ]);
  935.     }
  936.     /**
  937.      * @Route("/cardiologia2/{id_agenda}", name="cardiologia2", methods={"GET"})
  938.      */
  939.     public function cardiologia2(Request $request$id_agendaAgendaRepository $agendaRepositoryEmpresaRepository $empresaRepository ): Response
  940.     {
  941.         // Configure Dompdf segĂºn sus necesidades
  942.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  943.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  944.         $agenda $agendaRepository->find($id_agenda);
  945.         $empresa $empresaRepository->find(1);
  946.         $arr_mes = ['''ENERO''FEBRERO''MARZO''ABRIL''MAYO''JUNIO''JULIO''AGOSTO''SEPTIEMBRE''OCTUBRE''NOVIEMBRE''DICIEMBRE'];
  947.         $mes date_format($agenda->getinicio(), 'm');
  948.         $lmes $arr_mes[intval($mes)];
  949.         
  950.         $pdfOptions = new Options();
  951.         $pdfOptions->set('defaultFont''Arial');
  952.         $pdfOptions->set('isRemoteEnabled'TRUE);
  953.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  954.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  955.         // Crea una instancia de Dompdf con nuestras opciones
  956.         $dompdf = new Dompdf($pdfOptions);
  957.         $filename './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
  958.         $file_exists file_exists($filename);
  959.         
  960.         // Recupere el HTML generado en nuestro archivo twig
  961.         $html $this->renderView('historia_clinica/cardiologia2_pdf.html.twig',[
  962.             'agenda'      => $agenda,
  963.             'empresa'     => $empresa,
  964.             'lmes'        => $lmes,
  965.             'file_exists' => $file_exists,
  966.         ]);
  967.         
  968.         // Cargar HTML en Dompdf
  969.         $dompdf->loadHtml($html);
  970.         //$dompdf->loadHtmlFile($html);
  971.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  972.         $dompdf->setPaper('A4''portrait');
  973.         //dompdf->setPaper('A4', 'landscape');
  974.         // Renderiza el HTML como PDF
  975.         $dompdf->render();
  976.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  977.         $dompdf->stream("mypdf.pdf", [
  978.             "Attachment" => false
  979.         ]);
  980.     }
  981.     /**
  982.      * @Route("/formulario/007/{id}", name="formulario007_imprimir", methods={"GET"})
  983.      */
  984.     public function formulario_007(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  985.     {
  986.         
  987.         $empresa $empresaRepository->find(1);
  988.         $spreadsheet = new Spreadsheet();
  989.         
  990.         
  991.         /* @var $sheet \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet */
  992.         $sheet $spreadsheet->getActiveSheet();
  993.         
  994.         $sheet->setTitle("Formulario 007");
  995.         $sheet->setCellValue('B2''ESTABLECIMIENTO SOLICITANTE')->mergeCells('B2:E2');
  996.         $sheet->setCellValue('F2''NOMBRE')->mergeCells('F2:I2');
  997.         $sheet->setCellValue('J2''APELLIDO')->mergeCells('J2:M2');
  998.         $sheet->setCellValue('N2''SEXO (F-M)')->mergeCells('N2:O2');   
  999.         $sheet->setCellValue('P2''EDAD');
  1000.         $sheet->setCellValue('Q2''N HISTORIA CLINICA')->mergeCells('Q2:R2');
  1001.         $sheet->getStyle('B2:R2')->getFont()->setBold(true);
  1002.         $sheet->setCellValue('B3'$empresa->getNombreCorto() )->mergeCells('B3:E3');
  1003.         $sheet->setCellValue('F3'$historiaClinica->getPaciente()->getNombre1().' '.$historiaClinica->getPaciente()->getNombre2())->mergeCells('F3:I3');
  1004.         $sheet->setCellValue('J3'$historiaClinica->getPaciente()->getApellido1().' '.$historiaClinica->getPaciente()->getApellido2())->mergeCells('J3:M3');
  1005.         if($historiaClinica->getPaciente()->getSexo()){
  1006.             $sexo 'M';
  1007.         }else{
  1008.             $sexo 'F';
  1009.         }
  1010.         $sheet->setCellValue('N3'$sexo)->mergeCells('N3:O3');   
  1011.         $sheet->setCellValue('P3'$historiaClinica->getPaciente()->CalculaEdad());
  1012.         $sheet->setCellValue('Q3'$historiaClinica->getPaciente()->getCedula())->mergeCells('Q3:R3');
  1013.         $sheet->setCellValue('B4'' ')->mergeCells('B4:R4');
  1014.         $sheet->setCellValue('B5''6 CUADRO CLINICO DE INTERCONSULTA')->mergeCells('B5:R5');
  1015.         $sheet->getStyle('B5')->getFont()->setBold(true);
  1016.         $sheet->setCellValue('B6'$historiaClinica->getEvolucion())->mergeCells('B6:R8');
  1017.         $sheet->getStyle('B6')->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  1018.         $sheet->getStyle('B6')->getAlignment()->setWrapText(true);
  1019.         $sheet->setCellValue('B9''')->mergeCells('B9:R9');
  1020.         $sheet->setCellValue('B10''7 RESUMEN DEL CRITERIO CLINICO')->mergeCells('B10:R10');
  1021.         $sheet->getStyle('B10')->getFont()->setBold(true);
  1022.         $sheet->setCellValue('B11''')->mergeCells('B11:R13');
  1023.         $styleArray = [
  1024.             'borders' => [
  1025.                 'allBorders' => [
  1026.                     'borderStyle' => Border::BORDER_THIN,
  1027.                 ],
  1028.             ],
  1029.         ];
  1030.         $sheet->setCellValue('B15''8 DIAGNOSTICO')->mergeCells('B15:E15');
  1031.         $sheet->setCellValue('F15''PRE - PRESUNTIVO DEF - DEFINITIVO')->mergeCells('F15:J15');
  1032.         $sheet->setCellValue('K15''CIE');
  1033.         $sheet->setCellValue('L15''PRE')->mergeCells('L15:M15');
  1034.         $sheet->setCellValue('N15''DEF')->mergeCells('N15:O15');
  1035.         $sheet->getStyle('B15:N15')->getFont()->setBold(true);
  1036.         $sheet->getStyle('B15:O15')->applyFromArray($styleArray);
  1037.         $i=16;
  1038.         $dxs $historiaClinica->getDiagnosticosHistoriaClinicas();
  1039.         foreach ($dxs as $value) {
  1040.             $sheet->setCellValue('B'.$i$value->getCie10()->getNombre())->mergeCells('B'.$i.':J'.$i);
  1041.             $sheet->setCellValue('K'.$i$value->getCie10()->getCodigo());
  1042.             $pre ''$def '';
  1043.             if($value->getTipo()=='PRESUNTIVO'){
  1044.                 $pre 'X';
  1045.             }else{
  1046.                 $def 'X';
  1047.             }
  1048.             $sheet->setCellValue('L'.$i$pre)->mergeCells('L'.$i.':M'.$i);
  1049.             $sheet->setCellValue('N'.$i$def)->mergeCells('N'.$i.':O'.$i);
  1050.             $sheet->getStyle('B'.$i.':O'.$i)->applyFromArray($styleArray);
  1051.             $i++;    
  1052.         }
  1053.            
  1054.         $i++;    
  1055.         $sheet->setCellValue('B'.$i'9 PLAN DIAGNOSTICO PROPUESTO')->mergeCells('B'.$i.':R'.$i);
  1056.         $sheet->getStyle('B'.$i.':R'.$i)->getFont()->setBold(true);
  1057.         $sheet->getStyle('B'.$i.':R'.$i)->applyFromArray($styleArray);
  1058.         $i++;$j $i 2;
  1059.         $sheet->setCellValue('B'.$i'')->mergeCells('B'.$i.':R'.$j);
  1060.         $sheet->getStyle('B'.$i.':R'.$j)->applyFromArray($styleArray);
  1061.         $i $i 3;
  1062.         $sheet->setCellValue('B'.$i'')->mergeCells('B'.$i.':R'.$i);
  1063.         $i++;
  1064.         $sheet->setCellValue('B'.$i'10 PLAN DE TRATAMIENTO PROPUESTO')->mergeCells('B'.$i.':R'.$i);
  1065.         $sheet->getStyle('B'.$i.':R'.$i)->getFont()->setBold(true);
  1066.         $sheet->getStyle('B'.$i.':R'.$i)->applyFromArray($styleArray);
  1067.         $i++;$k $i 2;
  1068.         $sheet->setCellValue('B'.$i'')->mergeCells('B'.$i.':R'.$k);
  1069.         $sheet->getStyle('B'.$i.':R'.$k)->applyFromArray($styleArray);
  1070.         $i $i 3;
  1071.         $sheet->setCellValue('B'.$i'')->mergeCells('B'.$i.':R'.$i);
  1072.         $i++;
  1073.         $sheet->setCellValue('B'.$i'')->mergeCells('B'.$i.':K'.$i);
  1074.         $sheet->setCellValue('L'.$i'cĂ³digo');
  1075.         $sheet->setCellValue('M'.$i'')->mergeCells('M'.$i.':R'.$i);
  1076.         $i++;
  1077.         $sheet->setCellValue('B'.$i'Fecha');
  1078.         $sheet->setCellValue('C'.$i'');
  1079.         $sheet->setCellValue('D'.$i'Hora');
  1080.         $sheet->setCellValue('E'.$i'')->mergeCells('E'.$i.':F'.$i);
  1081.         $sheet->setCellValue('G'.$i'Profesional')->mergeCells('G'.$i.':H'.$i);
  1082.         $sheet->setCellValue('I'.$i'')->mergeCells('I'.$i.':K'.$i);
  1083.         $sheet->setCellValue('L'.$i'');
  1084.         $sheet->setCellValue('M'.$i'Firma')->mergeCells('M'.$i.':N'.$i);
  1085.         $sheet->setCellValue('O'.$i'Firma')->mergeCells('O'.$i.':P'.$i);
  1086.         $sheet->setCellValue('Q'.$i'NĂºmero de Hoja');
  1087.         $sheet->setCellValue('R'.$i'');
  1088.         $i++;
  1089.         $sheet->setCellValue('B'.$i'SNS-MSP / HCU-form.007 / 2008                     INTERCONSULTA - INFORME')->mergeCells('B'.$i.':R'.$i);
  1090.         $i++;
  1091.         $sheet->setCellValue('B'.$i'')->mergeCells('B'.$i.':R'.$i);
  1092.         
  1093.         $sheet->getStyle('B2:R10')->applyFromArray($styleArray);
  1094.         $sheet->getStyle('B11:R13')->applyFromArray($styleArray);
  1095.         
  1096.         // Create your Office 2007 Excel (XLSX Format)
  1097.         $writer = new Xlsx($spreadsheet);
  1098.         
  1099.         // Create a Temporary file in the system
  1100.         $fileName 'FORMULARIO 007.xlsx';
  1101.         $temp_file tempnam(sys_get_temp_dir(), $fileName);
  1102.         
  1103.         // Create the excel file in the tmp directory of the system
  1104.         $writer->save($temp_file);
  1105.         
  1106.         // Return the excel file as an attachment
  1107.         return $this->file($temp_file$fileNameResponseHeaderBag::DISPOSITION_INLINE);
  1108.     }
  1109.     /**
  1110.      * @Route("/formulario/certificado/asistencia/{id}", name="asistencia_formulario", methods={"GET"})
  1111.      */
  1112.     public function formulario_asistencia(Request $requestHistoriaClinica $historiaClinica): Response
  1113.     {
  1114.         $form $this->createForm(HistoriaCertificadoType::class, $historiaClinica);
  1115.         $form->handleRequest($request);
  1116.         return $this->render('historia_clinica/formulario_asistencia.html.twig', [
  1117.             'historiaClinica'=> $historiaClinica,
  1118.             'form'           => $form->createView(),
  1119.         ]);
  1120.     }  
  1121.     /**
  1122.      * @Route("/guardar/formulario/certificado/asistencia/{id}", name="asistencia_formulario_guardar", methods={"POST"})
  1123.      */
  1124.     public function formulario_asistencia_guardar(Request $requestHistoriaClinica $historiaClinica): Response
  1125.     {
  1126.         $form $this->createForm(HistoriaCertificadoType::class, $historiaClinica);
  1127.         $form->handleRequest($request);
  1128.         if ($form->isSubmitted() && $form->isValid()) {
  1129.             
  1130.             
  1131.             $entityManager $this->getDoctrine()->getManager();
  1132.             $entityManager->persist($historiaClinica);
  1133.             $entityManager->flush();
  1134.             return $this->json(['estado' => 'ok']);
  1135.         }
  1136.         return $this->json(['estado' => 'error']);
  1137.     }    
  1138.     /**
  1139.      * @Route("/imprimir/certificado/asistencia/{id}", name="asistencia_imprimir", methods={"GET"})
  1140.      */
  1141.     public function imprimir_asistencia(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  1142.     {
  1143.         // Configure Dompdf segĂºn sus necesidades
  1144.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  1145.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  1146.         
  1147.         //$empresa = $empresaRepository->find(1);
  1148.         $unidad $historiaClinica->getAgenda()->getSala()->getUnidad();
  1149.         $empresa $empresaRepository->find($unidad->getId());
  1150.         $inicio $historiaClinica->getAgenda()->getInicio();
  1151.         
  1152.         $mes = ['''enero''febrero''marzo''abril''mayo''junio''julio''agosto''septiembre''octubre''noviembre''diciembre'];
  1153.         $nmes intval(date_format($inicio,'m'));
  1154.         $txtmes $mes[$nmes];//dd($txtmes);
  1155.         $pdfOptions = new Options();
  1156.         $pdfOptions->set('defaultFont''Arial');
  1157.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1158.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  1159.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  1160.         // Crea una instancia de Dompdf con nuestras opciones
  1161.         $dompdf = new Dompdf($pdfOptions);
  1162.         
  1163.         // Recupere el HTML generado en nuestro archivo twig
  1164.         $html $this->renderView('historia_clinica/certificado_asistencia_pdf.html.twig',[
  1165.             'historiaClinica' => $historiaClinica,
  1166.             'empresa' => $empresa,  
  1167.             'txtmes' => $txtmes
  1168.         ]);
  1169.         
  1170.         // Cargar HTML en Dompdf
  1171.         $dompdf->loadHtml($html);
  1172.         //$dompdf->loadHtmlFile($html);
  1173.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  1174.         $dompdf->setPaper('A4''portrait');
  1175.         //dompdf->setPaper('A4', 'landscape');
  1176.         // Renderiza el HTML como PDF
  1177.         $dompdf->render();
  1178.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  1179.         $dompdf->stream("Asistencia_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
  1180.             "Attachment" => false
  1181.         ]);
  1182.         exit();
  1183.     }
  1184.     /**
  1185.      * @Route("/imprimir/certificado/medico/{id}", name="certificado_medico_imprimir", methods={"GET"})
  1186.      */
  1187.     public function imprimir_certificado_medico(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  1188.     {
  1189.         // Configure Dompdf segĂºn sus necesidades
  1190.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  1191.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  1192.         //dd();
  1193.         //$empresa = $empresaRepository->find(1);
  1194.         $unidad $historiaClinica->getAgenda()->getSala()->getUnidad();
  1195.         $empresa $empresaRepository->find($unidad->getId());
  1196.         
  1197.         $inicio $historiaClinica->getAgenda()->getInicio();
  1198.         $mes = ['''enero''febrero''marzo''abril''mayo''junio''julio''agosto''septiembre''octubre''noviembre''diciembre'];
  1199.         $nmes intval(date_format($inicio,'m'));
  1200.         $txtmes $mes[$nmes];//dd($txtmes);
  1201.         $pdfOptions = new Options();
  1202.         $pdfOptions->set('defaultFont''Arial');
  1203.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1204.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  1205.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  1206.         // Crea una instancia de Dompdf con nuestras opciones
  1207.         $dompdf = new Dompdf($pdfOptions);
  1208.         
  1209.         // Recupere el HTML generado en nuestro archivo twig
  1210.         $html $this->renderView('historia_clinica/certificado_medico_pdf.html.twig',[
  1211.             'historiaClinica' => $historiaClinica,
  1212.             'empresa' => $empresa,  
  1213.             'txtmes' => $txtmes
  1214.         ]);
  1215.         
  1216.         // Cargar HTML en Dompdf
  1217.         $dompdf->loadHtml($html);
  1218.         //$dompdf->loadHtmlFile($html);
  1219.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  1220.         $dompdf->setPaper('A4''portrait');
  1221.         //dompdf->setPaper('A4', 'landscape');
  1222.         // Renderiza el HTML como PDF
  1223.         $dompdf->render();
  1224.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  1225.         $dompdf->stream("Descanso_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
  1226.             "Attachment" => false
  1227.         ]);
  1228.     }
  1229.     
  1230.      /**
  1231.      * @Route("/nimprimir/certificado/medico/covid/{id}", name="certificado_medico_imprimir_covid", methods={"GET"})
  1232.      */
  1233.     public function imprimir_certificado_medico_covid(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  1234.     {
  1235.         // Configure Dompdf segĂºn sus necesidades
  1236.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  1237.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  1238.         //dd();
  1239.         //$empresa = $empresaRepository->find(1);
  1240.         $unidad $historiaClinica->getAgenda()->getSala()->getUnidad();
  1241.         $empresa $empresaRepository->find($unidad->getId());
  1242.         
  1243.         $inicio $historiaClinica->getAgenda()->getInicio();
  1244.         $mes = ['''enero''febrero''marzo''abril''mayo''junio''julio''agosto''septiembre''octubre''noviembre''diciembre'];
  1245.         $nmes intval(date_format($inicio,'m'));
  1246.         $txtmes $mes[$nmes];//dd($txtmes);
  1247.         $pdfOptions = new Options();
  1248.         $pdfOptions->set('defaultFont''Arial');
  1249.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1250.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  1251.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  1252.         // Crea una instancia de Dompdf con nuestras opciones
  1253.         $dompdf = new Dompdf($pdfOptions);
  1254.         
  1255.         // Recupere el HTML generado en nuestro archivo twig
  1256.         $html $this->renderView('historia_clinica/certificado_medico_covid_pdf.html.twig',[
  1257.             'historiaClinica' => $historiaClinica,
  1258.             'empresa' => $empresa,  
  1259.             'txtmes' => $txtmes
  1260.         ]);
  1261.         
  1262.         // Cargar HTML en Dompdf
  1263.         $dompdf->loadHtml($html);
  1264.         //$dompdf->loadHtmlFile($html);
  1265.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  1266.         $dompdf->setPaper('A4''portrait');
  1267.         //dompdf->setPaper('A4', 'landscape');
  1268.         // Renderiza el HTML como PDF
  1269.         $dompdf->render();
  1270.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  1271.         $dompdf->stream("Descanso_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
  1272.             "Attachment" => false
  1273.         ]);
  1274.         exit();
  1275.     }
  1276.     
  1277.     /**
  1278.      * @Route("/nimprimir/certificado/medico/enfermedad/general/{id}", name="certificado_medico_imprimir_enfermedad_general", methods={"GET"})
  1279.      */
  1280.     public function imprimir_certificado_medico_enfermedad_general(Request $requestHistoriaClinica $historiaClinicaEmpresaRepository $empresaRepository): Response
  1281.     {
  1282.         // Configure Dompdf segĂºn sus necesidades
  1283.         //$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
  1284.         //$dxs = $historia->getDiagnosticosHistoriaClinicas();
  1285.         //dd();
  1286.         //$empresa = $empresaRepository->find(1);
  1287.         $unidad $historiaClinica->getAgenda()->getSala()->getUnidad();
  1288.         $empresa $empresaRepository->find($unidad->getId());
  1289.         
  1290.         $inicio $historiaClinica->getAgenda()->getInicio();
  1291.         $mes = ['''enero''febrero''marzo''abril''mayo''junio''julio''agosto''septiembre''octubre''noviembre''diciembre'];
  1292.         $nmes intval(date_format($inicio,'m'));
  1293.         $txtmes $mes[$nmes];//dd($txtmes);
  1294.         $pdfOptions = new Options();
  1295.         $pdfOptions->set('defaultFont''Arial');
  1296.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1297.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  1298.         //$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
  1299.         // Crea una instancia de Dompdf con nuestras opciones
  1300.         $dompdf = new Dompdf($pdfOptions);
  1301.         
  1302.         // Recupere el HTML generado en nuestro archivo twig
  1303.         $html $this->renderView('historia_clinica/certificado_medico_enfermedad_general_pdf.html.twig',[
  1304.             'historiaClinica' => $historiaClinica,
  1305.             'empresa' => $empresa,  
  1306.             'txtmes' => $txtmes
  1307.         ]);
  1308.         
  1309.         // Cargar HTML en Dompdf
  1310.         $dompdf->loadHtml($html);
  1311.         //$dompdf->loadHtmlFile($html);
  1312.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  1313.         $dompdf->setPaper('A4''portrait');
  1314.         //dompdf->setPaper('A4', 'landscape');
  1315.         // Renderiza el HTML como PDF
  1316.         $dompdf->render();
  1317.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  1318.         $dompdf->stream("Descanso_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
  1319.             "Attachment" => false
  1320.         ]);
  1321.     }
  1322.     /**
  1323.      * @Route("/consulta/imprimir/{id}", name="historia_clinica_consulta_imprimir", methods={"GET"})
  1324.      */
  1325.     public function consulta_imprimir(HistoriaClinica $historiaClinicaOdontogramaRepository $odontogramaRepositoryUserRepository $userRepository): Response
  1326.     {
  1327.         /*return $this->render('historia_clinica/impresiones.html.twig', [
  1328.             'historiaClinica' => $historiaClinica,
  1329.         ]);*/
  1330.         
  1331.         $agenda $historiaClinica->getAgenda();
  1332.        
  1333.         $paciente $historiaClinica->getAgenda()->getPaciente();
  1334.         
  1335.         $estudios $historiaClinica->getEstudios();
  1336.        //dd($estudios);
  1337.         $odontogramas $odontogramaRepository->findBy(['paciente' => $paciente'estado' => 1],[ 'fecha' => 'DESC']);
  1338.       
  1339.         return $this->render('historia_clinica/impresiones.html.twig', [
  1340.             'historiaClinica' => $historiaClinica,
  1341.             'userRepository'    => $userRepository,
  1342.             'odontogramas'      => $odontogramas,
  1343.             'agenda'      => $agenda,
  1344.             'estudios'      => $estudios
  1345.         ]);
  1346.     }
  1347.     /**
  1348.      * @Route("/as400/pantallas/imprimir/{id}", name="imprimir_as400_pantallas", methods={"GET"})
  1349.      */
  1350.     public function imprimir_as400_pantallas(Request $requestHistoriaClinica $historiaClinica): Response
  1351.     {
  1352.         
  1353.         /*return $this->render('historia_clinica/pantallas_as400.html.twig', [
  1354.             'historiaClinica' => $historiaClinica,
  1355.         ]);*/
  1356.         //dd("hola");
  1357.         $pdfOptions = new Options();
  1358.         //$pdfOptions->set('defaultFont', 'Arial');
  1359.         $pdfOptions->set('isRemoteEnabled'TRUE);
  1360.         $pdfOptions->set('isHtml5ParserEnabled'TRUE);
  1361.         // Crea una instancia de Dompdf con nuestras opciones
  1362.         $dompdf = new Dompdf($pdfOptions);
  1363.         
  1364.         // Recupere el HTML generado en nuestro archivo twig
  1365.         $html $this->renderView('historia_clinica/pantallas_as400.html.twig',[
  1366.             'historiaClinica' => $historiaClinica,
  1367.         ]);
  1368.         
  1369.         // Cargar HTML en Dompdf
  1370.         $dompdf->loadHtml($html);
  1371.         //$dompdf->loadHtmlFile($html);
  1372.         // (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
  1373.         $dompdf->setPaper('A4''portrait');
  1374.         //$dompdf->setPaper('A4', 'landscape');
  1375.         // Renderiza el HTML como PDF
  1376.         $dompdf->render();
  1377.         // EnvĂ­e el PDF generado al navegador (vista en lĂ­nea)
  1378.         $dompdf->stream("pantallas_as400.pdf", [
  1379.             "Attachment" => false
  1380.         ]);
  1381.         // Send some text response
  1382.         return new Response("The PDF file has been succesfully generated !");
  1383.     }
  1384.     /**
  1385.      * @Route("/paciente/{id_paciente}", name="historia_clinica_index_paciente", methods={"GET","POST"})
  1386.      */
  1387.     public function index_paciente(HistoriaClinicaRepository $historiaClinicaRepositoryAgendaRepository $agendaRepositoryPaginatorInterface $paginatorRequest $request$id_pacientePacienteResultadosRepository $pacienteResultadosRepositoryPacienteRepository $pacienteRepository): Response
  1388.     {
  1389.         
  1390.         $query $agendaRepository->findByPaciente($id_paciente);
  1391.         $paciente $pacienteRepository->find($id_paciente);
  1392.         
  1393.         //dd($query->getResult());
  1394.         $resultados $pacienteResultadosRepository->findBy(['estado' => '1''paciente' => $paciente],['fechaResultado' => 'DESC']);
  1395.     
  1396.         $historias_clinicas $paginator->paginate(
  1397.             $query,
  1398.             $request->query->getInt('page',1),
  1399.             100
  1400.         );
  1401.         return $this->render('historia_clinica/paciente.html.twig', [ 'historias_clinicas' => $historias_clinicas'resultados' => $resultados,'paciente'=>$paciente ]);
  1402.     }
  1403.     /**
  1404.      * @Route("/paciente/detalle/{id}", name="historia_clinica_consulta_detalle", methods={"GET"})
  1405.      */
  1406.    public function consulta_detalle(HistoriaClinica $historiaClinicaOdontogramaRepository $odontogramaRepositoryUserRepository $userRepository): Response
  1407.     {
  1408.         //dd($historiaClinica);
  1409.         $preparacion $historiaClinica->getAgenda()->getPreparacion();
  1410.         $estudios    $historiaClinica->ObtenerEstudios();
  1411.         $odontogramas $odontogramaRepository->findBy(['paciente' => $historiaClinica->getpaciente(), 'estado' => 1],[ 'fecha' => 'DESC']);
  1412.         
  1413.         return $this->render('historia_clinica/detalle_consulta.html.twig', [
  1414.             'historia_clinica'  => $historiaClinica,
  1415.             'preparacion'       => $preparacion,
  1416.             'estudios'          => $estudios,
  1417.             'odontogramas'      => $odontogramas,
  1418.             'userRepository'    => $userRepository,
  1419.         ]);
  1420.     }
  1421.     /**
  1422.      * @Route("/paciente/detalle_new/{id}", name="historia_clinica_consulta_detalle_new", methods={"GET"})
  1423.      */
  1424.     public function consulta_detalle_new(HistoriaClinica $historiaClinicaOdontogramaRepository $odontogramaRepositoryUserRepository $userRepository): Response
  1425.     {
  1426.         //dd($historiaClinica);
  1427.         $preparacion $historiaClinica->getAgenda()->getPreparacion();
  1428.         $estudios    $historiaClinica->ObtenerEstudios();
  1429.         $odontogramas $odontogramaRepository->findBy(['paciente' => $historiaClinica->getpaciente(), 'estado' => 1],[ 'fecha' => 'DESC']);
  1430.         
  1431.         return $this->render('historia_clinica/detalle_consulta_new.html.twig', [
  1432.             'historia_clinica'  => $historiaClinica,
  1433.             'preparacion'       => $preparacion,
  1434.             'estudios'          => $estudios,
  1435.             'odontogramas'      => $odontogramas,
  1436.             'userRepository'    => $userRepository,
  1437.         ]);
  1438.     }
  1439.     /**
  1440.      * @Route("/facturacion/{id_paciente}", name="historia_clinica_index_facturacion", methods={"GET","POST"})
  1441.      */
  1442.     public function index_paciente_facturacion(HistoriaClinicaRepository $historiaClinicaRepositoryAgendaRepository $agendaRepositoryPaginatorInterface $paginatorRequest $request$id_paciente): Response
  1443.     {
  1444.         $query $agendaRepository->findByPaciente_Con_Proc($id_paciente);
  1445.         //dd($query->getResult());
  1446.     
  1447.         $historias_clinicas $paginator->paginate(
  1448.             $query,
  1449.             $request->query->getInt('page',1),
  1450.             30
  1451.         );
  1452.         return $this->render('historia_clinica/paciente_facturacion.html.twig', [ 'historias_clinicas' => $historias_clinicas ]);
  1453.     }
  1454.     
  1455.     /**
  1456.      * @Route("/suspender/{id}", name="historia_suspender", methods={"GET","POST"})
  1457.      */
  1458.     public function suspender(Request $requestAgenda $agenda): Response
  1459.     {
  1460.         //dd($agenda);
  1461.         $ip   $request->getClientIp();
  1462.         $user $this->security->getUser();
  1463.        
  1464.         $logagenda   = new LogAgenda();
  1465.             $entityManager $this->getDoctrine()->getManager();
  1466.             $sala         $agenda->getSala();
  1467.             $logagenda->setSala($sala);
  1468.             $logagenda->setIpCrea($ip);
  1469.             $logagenda->setIpModifica($ip);
  1470.             $agenda->setEstado(0);
  1471.             $agenda->setEstadoAgenda(3);
  1472.             $logagenda->setEstadoAgenda(3);
  1473.             $logagenda->setUserCrea($user->getId());
  1474.             $logagenda->setUserModifica($user->getId());
  1475.             $inicio          $agenda->getInicio();
  1476.             $fin             $agenda->getFin();
  1477.             $seguro          $agenda->getSeguro();
  1478.             $especialidad    $agenda->getEspecialidad();
  1479.             $doctor          $agenda->getDoctor();
  1480.             $observacion     'NO ASISTE MARCADO POR EL MEDICO';
  1481.             $descripcion     'SUSPENDER';
  1482.             $agenda->setObservacion($observacion);
  1483.             $logagenda->setInicio($inicio);
  1484.             $logagenda->setFin($fin);
  1485.             $logagenda->setObservacion($observacion);
  1486.             $logagenda->setAgenda($agenda);
  1487.             $logagenda->setSeguro($seguro);
  1488.             $logagenda->setEspecialidad($especialidad);
  1489.             $logagenda->setDoctor($doctor);
  1490.             $logagenda->setDescripcion($descripcion);
  1491.             //$entityManager = $this->getDoctrine()->getManager();
  1492.             $entityManager->persist($logagenda);
  1493.             //$entityManager->persist($agenda);
  1494.             $entityManager->flush();
  1495.         
  1496.         return $this->json(['estado' => 'ok']);
  1497.     }
  1498.     
  1499.     /**
  1500.      * @Route("/index/coordinacion/enfermeria", name="historia_clinica_index_coordinacion_enfermeria", methods={"GET","POST"})
  1501.      */
  1502.     public function index_coordinacion_enfermeria(HistoriaClinicaRepository $historiaClinicaRepositoryAgendaRepository $agendaRepositoryPaginatorInterface $paginatorRequest $request): Response
  1503.     {
  1504.         $user   $this->security->getUser();
  1505.         date_default_timezone_set("America/Guayaquil");
  1506.         $agenda = new Agenda();
  1507.         //$form = $this->createForm(BuscaPreparacionType::class,$agenda);
  1508.         $form $this->createForm(BuscaPreparacionType_pac::class,$agenda);
  1509.         $form->handleRequest($request);
  1510.         $fecha $form->get('inicio')->getData();
  1511.         $fin      $form->get('fin')->getData();
  1512.         $paciente $form->get('paciente')->getData();
  1513.         $session $request->getSession();
  1514.         $session->set('paciente',null);
  1515.         $page 0;
  1516.         if($request->query->get('page') != null ){
  1517.             $page $request->query->get('page');
  1518.             $page = ($page 1)*100;
  1519.         } 
  1520.         
  1521.         if($fecha==null){
  1522.             $fecha = new \DateTime("now");
  1523.             $form->get('inicio')->setData($fecha);  
  1524.         } 
  1525.          if($fin==null){
  1526.             $fin = new \DateTime("now");
  1527.              
  1528.             $form->get('fin')->setData($fin);  
  1529.         } 
  1530.         
  1531.         $flag_sb false;
  1532.         if ($form->isSubmitted() && $form->isValid()) {
  1533.             $flag_sb true;
  1534.         }else{ 
  1535.             $fecha2 null$fin2 null;
  1536.             if($request->query->get('inicio') != null ){
  1537.                 $fecha2 $request->query->get('inicio');
  1538.                 
  1539.             } 
  1540.             if($request->query->get('fin') != null ){
  1541.                 $fin2 $request->query->get('fin');
  1542.                 
  1543.             } 
  1544.             if($fecha2 != null || $fin2 != null){
  1545.                 
  1546.                 $fecha2 = new \DateTime($fecha2);
  1547.                 $fin2 = new \DateTime($fin2);
  1548.                 //dd($fecha2, $fin2);
  1549.                 $form->get('inicio')->setData($fecha2);
  1550.                 $form->get('fin')->setData($fin2);
  1551.                 $fecha $fecha2;$fin $fin2;
  1552.             } 
  1553.         }  
  1554.         
  1555.         $query $agendaRepository->findByAdmisionadas_paciente_enfermeria(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
  1556.         
  1557.         $agendas $paginator->paginate(
  1558.             $query,
  1559.             $request->query->getInt('page',1),
  1560.             100
  1561.         );
  1562.         
  1563.         
  1564.         return $this->render('historia_clinica/index_enfermeria.html.twig', [ 'agendas' => $agendas'form' => $form->createView(), 'paciente' => $paciente,
  1565.         'inicio' => date_format($fecha,'Y-m-d'), 
  1566.             'fin' => date_format($fin,'Y-m-d'), 'page' => $page]);
  1567.     }
  1568.     
  1569.     /**
  1570.      * @Route("/paciente/detalle_new/enfermeria/{id}", name="historia_clinica_consulta_detalle_new_enfermeria", methods={"GET"})
  1571.      */
  1572.     public function consulta_detalle_new_enfermeria(Agenda $agendaUserRepository $userRepositoryPreparacionRepository $preparacionRepository): Response
  1573.     {
  1574.         
  1575.         //$preparacion = $historiaClinica->getAgenda()->getPreparacion();
  1576.         //$estudios    = $historiaClinica->ObtenerEstudios();
  1577.         //$odontogramas = $odontogramaRepository->findBy(['paciente' => $historiaClinica->getpaciente(), 'estado' => 1],[ 'fecha' => 'DESC']);
  1578.         
  1579.         $preparaciones $preparacionRepository->buscaPreparacionxPaciente($agenda->getPaciente()->getId());//dd($preparaciones->getResult());
  1580.         
  1581.         return $this->render('historia_clinica/detalle_consulta_new_enfermeria.html.twig', [
  1582.             'agenda'  => $agenda,
  1583.             //'preparacion'       => $preparacion,
  1584.             //'estudios'          => $estudios,
  1585.             //'odontogramas'      => $odontogramas,
  1586.             'userRepository'    => $userRepository,
  1587.             'preparaciones'     => $preparaciones->getResult(),
  1588.         ]);
  1589.     }
  1590.     
  1591.     /**
  1592.      * @Route("/index/guardiania", name="historia_clinica_index_guardiania", methods={"GET","POST"})
  1593.      */
  1594.     public function index_guardiania(HistoriaClinicaRepository $historiaClinicaRepositoryAgendaRepository $agendaRepositoryPaginatorInterface $paginatorRequest $request): Response
  1595.     {
  1596.         $user   $this->security->getUser();
  1597.         date_default_timezone_set("America/Guayaquil");
  1598.         $agenda = new Agenda();
  1599.         //$form = $this->createForm(BuscaPreparacionType::class,$agenda);
  1600.         $form $this->createForm(BuscaPreparacionType_pac::class,$agenda);
  1601.         $form->handleRequest($request);
  1602.         $fecha $form->get('inicio')->getData();
  1603.         $fin      $form->get('fin')->getData();
  1604.         $paciente $form->get('paciente')->getData();
  1605.         $session $request->getSession();
  1606.         $session->set('paciente',null);
  1607.         $page 0;
  1608.         if($request->query->get('page') != null ){
  1609.             $page $request->query->get('page');
  1610.             $page = ($page 1)*100;
  1611.         } 
  1612.         
  1613.         if($fecha==null){
  1614.             $fecha = new \DateTime("now");
  1615.             $form->get('inicio')->setData($fecha);  
  1616.         } 
  1617.          if($fin==null){
  1618.             $fin = new \DateTime("now");
  1619.              
  1620.             $form->get('fin')->setData($fin);  
  1621.         } 
  1622.         
  1623.         
  1624.         $flag_sb false;
  1625.         if ($form->isSubmitted() && $form->isValid()) {
  1626.             $flag_sb true;
  1627.         }else{ 
  1628.             $fecha2 null$fin2 null;
  1629.             if($request->query->get('inicio') != null ){
  1630.                 $fecha2 $request->query->get('inicio');
  1631.                 
  1632.             } 
  1633.             if($request->query->get('fin') != null ){
  1634.                 $fin2 $request->query->get('fin');
  1635.                 
  1636.             } 
  1637.             if($fecha2 != null || $fin2 != null){
  1638.                 
  1639.                 $fecha2 = new \DateTime($fecha2);
  1640.                 $fin2 = new \DateTime($fin2);
  1641.                 $form->get('inicio')->setData($fecha2);
  1642.                 $form->get('fin')->setData($fin2);
  1643.                 $fecha $fecha2;$fin $fin2;
  1644.             } 
  1645.         }  
  1646.         
  1647.         //$query = $agendaRepository->findByAdmisionadas_paciente_desc2(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
  1648.         $query $agendaRepository->findByAdmisionadas_paciente_asc_2(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
  1649.         
  1650.         
  1651.         $agendas $paginator->paginate(
  1652.             $query,
  1653.             $request->query->getInt('page',1),
  1654.             100
  1655.         );
  1656.         
  1657.         
  1658.         return $this->render('historia_clinica/index_guardiania.html.twig', [ 'agendas' => $agendas'form' => $form->createView(), 'paciente' => $paciente,
  1659.         'inicio' => date_format($fecha,'Y-m-d'), 
  1660.             'fin' => date_format($fin,'Y-m-d'), 'page' => $page]);
  1661.     }
  1662.     
  1663.     /**
  1664.      * @Route("/seguros/factura/hc", name="historia_clinica_guarda_item", methods={"POST"})
  1665.      */
  1666.     public function guarda_item(Request $requestAgendaRepository $agendaRepository)
  1667.     {
  1668.         // Acceder a los parĂ¡metros del objeto request
  1669.         $id $request->request->get('id'); // 87550
  1670.         $factura $request->request->get('factura'); // 12
  1671.         $fechaFactura $request->request->get('fecha_factura'); // ""
  1672.         $fechaPago $request->request->get('fecha_pago'); // ""
  1673.         $verificado $request->request->get('verificado'); // ""
  1674.         $agenda $agendaRepository->find($id);//dd($agenda);
  1675.         $agenda->setFactura($factura);
  1676.         $agenda->setFechaFactura($fechaFactura);
  1677.         $agenda->setFechaPago($fechaPago);
  1678.         $agenda->setVerificado($verificado);
  1679.         
  1680.         $entityManager $this->getDoctrine()->getManager();
  1681.         $entityManager->persist($agenda);
  1682.         $entityManager->flush();
  1683.         return $this->json(['estado' => 'ok''agenda' => $agenda->getId()]);
  1684.     }
  1685.     
  1686.     
  1687. }