<?php
namespace App\Controller;
use App\Entity\HistoriaClinica;
use App\Entity\Receta;
use App\Entity\Agenda;
use App\Entity\LogAgenda;
use App\Entity\Estudio;
use App\Entity\ImagenesEstudio;
use App\Form\HistoriaClinicaType;
use App\Form\HistoriaClinicaNewType;
use App\Form\HistoriaClinicaCardioType;
use App\Entity\DiagnosticosHistoriaClinica;
use App\Form\DiagnosticosHistoriaClinicaType;
use App\Form\AntecedenteType;
use App\Form\BuscaPreparacionType;
use App\Form\BuscaPreparacionType_pac;
use App\Form\HistoriaCertificadoType;
use App\Form\EstudioTypeF;
use App\Form\ImagenesEstudioType;
use App\Repository\PacienteRepository;
use App\Repository\HistoriaClinicaRepository;
use App\Repository\AgendaRepository;
use App\Repository\PacienteResultadosRepository;
use App\Repository\EmpresaRepository;
use App\Repository\OdontogramaRepository;
use App\Repository\PreparacionRepository;
use App\Repository\UserRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\Security\Core\Security;
use Dompdf\Dompdf;
use Dompdf\Options;
// Include PhpSpreadsheet required namespaces
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
/**
* @Route("/historiaclinica")
*/
class HistoriaClinicaController extends AbstractController
{
/**
* @var Security
*/
private $security;
public function __construct(Security $security)
{
date_default_timezone_set("America/Guayaquil");
$this->security = $security;
}
/**
* @Route("/", name="historia_clinica_index", methods={"GET","POST"})
*/
public function index(HistoriaClinicaRepository $historiaClinicaRepository, AgendaRepository $agendaRepository, PaginatorInterface $paginator, Request $request): Response
{
$user = $this->security->getUser();
date_default_timezone_set("America/Guayaquil");
$agenda = new Agenda();
//$form = $this->createForm(BuscaPreparacionType::class,$agenda);
$form = $this->createForm(BuscaPreparacionType_pac::class,$agenda);
$form->handleRequest($request);
$fecha = $form->get('inicio')->getData();
$fin = $form->get('fin')->getData();
$paciente = $form->get('paciente')->getData();
$session = $request->getSession();
$session->set('paciente',null);
$page = 0;
if($request->query->get('page') != null ){
$page = $request->query->get('page');
$page = ($page - 1)*100;
}
if($fecha==null){
$fecha = new \DateTime("now");
$form->get('inicio')->setData($fecha);
}
if($fin==null){
$fin = new \DateTime("now");
$form->get('fin')->setData($fin);
}
$flag_sb = false;
if ($form->isSubmitted() && $form->isValid()) {
$flag_sb = true;
}else{
$fecha2 = null; $fin2 = null;
if($request->query->get('inicio') != null ){
$fecha2 = $request->query->get('inicio');
}
if($request->query->get('fin') != null ){
$fin2 = $request->query->get('fin');
}
if($fecha2 != null || $fin2 != null){
$fecha2 = new \DateTime($fecha2);
$fin2 = new \DateTime($fin2);
//dd($fecha2, $fin2);
$form->get('inicio')->setData($fecha2);
$form->get('fin')->setData($fin2);
$fecha = $fecha2;$fin = $fin2;
}
}
//$query = $agendaRepository->findByAdmisionadas_Doctor(date_format($fecha,'Y-m-d'),date_format($fecha,'Y-m-d'),$user);
$query = $agendaRepository->findByAdmisionadas_Doctor_Paciente(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$user,$paciente);
$agendas = $paginator->paginate(
$query,
$request->query->getInt('page',1),
100
);
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]);
}
/**
* @Route("/index/coordinacion", name="historia_clinica_index_coordinacion", methods={"GET","POST"})
*/
public function index_coordinacion(HistoriaClinicaRepository $historiaClinicaRepository, AgendaRepository $agendaRepository, PaginatorInterface $paginator, Request $request): Response
{
$user = $this->security->getUser();
date_default_timezone_set("America/Guayaquil");
$agenda = new Agenda();
//$form = $this->createForm(BuscaPreparacionType::class,$agenda);
$form = $this->createForm(BuscaPreparacionType_pac::class,$agenda);
$form->handleRequest($request);
$fecha = $form->get('inicio')->getData();
$fin = $form->get('fin')->getData();
$paciente = $form->get('paciente')->getData();
$session = $request->getSession();
$session->set('paciente',null);
$page = 0;
if($request->query->get('page') != null ){
$page = $request->query->get('page');
$page = ($page - 1)*100;
}
if($fecha==null){
$fecha = new \DateTime("now");
$form->get('inicio')->setData($fecha);
}
if($fin==null){
$fin = new \DateTime("now");
$form->get('fin')->setData($fin);
}
//$query = $agendaRepository->findByAdmisionadas(date_format($fecha,'Y-m-d'),date_format($fecha,'Y-m-d'));
//dd($query->getResult());
$flag_sb = false;
if ($form->isSubmitted() && $form->isValid()) {
$flag_sb = true;
}else{
$fecha2 = null; $fin2 = null;
if($request->query->get('inicio') != null ){
$fecha2 = $request->query->get('inicio');
}
if($request->query->get('fin') != null ){
$fin2 = $request->query->get('fin');
}
if($fecha2 != null || $fin2 != null){
$fecha2 = new \DateTime($fecha2);
$fin2 = new \DateTime($fin2);
//dd($fecha2, $fin2);
$form->get('inicio')->setData($fecha2);
$form->get('fin')->setData($fin2);
$fecha = $fecha2;$fin = $fin2;
}
}
//$query = $agendaRepository->findByAdmisionadas_paciente(date_format($fecha,'Y-m-d'),date_format($fecha,'Y-m-d'),$paciente); cambio a descencente
$query = $agendaRepository->findByAdmisionadas_paciente_desc(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
$agendas = $paginator->paginate(
$query,
$request->query->getInt('page',1),
100
);
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]);
}
/**
* @Route("/new", name="historia_clinica_new_old", methods={"GET","POST"})
*/
public function new(Request $request): Response
{
$historiaClinica = new HistoriaClinica();
$form = $this->createForm(HistoriaClinicaType::class, $historiaClinica);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($historiaClinica);
$entityManager->flush();
return $this->redirectToRoute('historia_clinica_index');
}
return $this->render('historia_clinica/new.html.twig', [
'historia_clinica' => $historiaClinica,
'form' => $form->createView(),
]);
}
/**
* @Route("/historiaclinica/new/{agenda_id}", name="historiaclinica_new", methods={"GET"})
*/
public function historiaclinica_new(AgendaRepository $agendaRepository, $agenda_id, Request $request ): Response
{
$ip = $request->getClientIp();
$user = $this->security->getUser();
$agenda = $agendaRepository->find($agenda_id);
$historiaclinica = $agenda->getHistoriaCLinica();
if($historiaclinica!=null){
return $this->json(['estado' => 'error', 'preparacion' => 'Ya existe Preparacion']);
}
$historiaclinica = new HistoriaClinica();
$entityManager = $this->getDoctrine()->getManager();
$historiaclinica->setEstado('1');
$historiaclinica->setPaciente($agenda->getPaciente());
$historiaclinica->setIpCrea($ip);
$historiaclinica->setIpModifica($ip);
$historiaclinica->setUserCrea($user->getId());
$historiaclinica->setUserModifica($user->getId());
$historiaclinica->setAgenda($agenda);
$entityManager->persist($historiaclinica);
$entityManager->flush();
if(str_contains($agenda->getProcedimiento()->getNombre(),'ECOGR')){
$estudio = new Estudio();
$estudio->setIpCrea($ip);
$estudio->setIpModifica($ip);
$estudio->setUserCrea($user->getId());
$estudio->setUserModifica($user->getId());
$estudio->setCirujano($agenda->getDoctor());
$estudio->setProcedimiento($agenda->getProcedimiento());
$estudio->setEstado(1);
$estudio->setHistoria($historiaclinica);
$entityManager->persist($estudio);
$entityManager->flush();
$procedimientos = $agenda->getAgendaProcedimientos();
foreach($procedimientos as $proc){
if(str_contains($proc->getProcedimiento()->getNombre(),'ECOGR')){
$estudiop = new Estudio();
$estudiop->setIpCrea($ip);
$estudiop->setIpModifica($ip);
$estudiop->setUserCrea($user->getId());
$estudiop->setUserModifica($user->getId());
$estudiop->setCirujano($agenda->getDoctor());
$estudiop->setProcedimiento($proc->getProcedimiento());
$estudiop->setEstado(1);
$estudiop->setHistoria($historiaclinica);
$entityManager->persist($estudiop);
$entityManager->flush();
}
}
}
return $this->json(['estado' => 'ok', 'historiaclinica' => $historiaclinica->getId()]);
}
/**
* @Route("/{id}", name="historia_clinica_show", methods={"GET"})
*/
public function show(HistoriaClinica $historiaClinica): Response
{
return $this->render('historia_clinica/show.html.twig', [
'historia_clinica' => $historiaClinica,
]);
}
/**
* @Route("/{id}/atendido", name="historia_clinica_atendido", methods={"GET"})
*/
public function atendido(HistoriaClinica $historiaClinica): Response
{
$historiaClinica->setEstado(2);
$this->getDoctrine()->getManager()->flush();
$user = $this->security->getUser();
if ( $user->getTipousuario()->getNombre() <> 'ENFERMERIA'){
return $this->redirectToRoute('historia_clinica_index');
} else {
return $this->redirectToRoute('preparacion_enfermeria_coordinacion');
}
/*
return $this->render('historia_clinica/show.html.twig', [
'historia_clinica' => $historiaClinica,
]);*/
}
/**
* @Route("/{id}/edit", name="historia_clinica_edit", methods={"GET","POST"})
*/
public function edit(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
$session = $request->getSession();
$session->set('paciente',$historiaClinica->getPaciente());
$form = $this->createForm(HistoriaClinicaType::class, $historiaClinica);
$form->handleRequest($request);
$cform = $this->createForm(HistoriaClinicaCardioType::class, $historiaClinica);
$cform->handleRequest($request);
$diagnosticosHistoriaClinica = new DiagnosticosHistoriaClinica();
$form_dx = $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
$form_dx->handleRequest($request);
$preparacion = $historiaClinica->getAgenda()->getPreparacion();
//dd($preparacion);
$empresa = $empresaRepository->find(1);
if ($form->isSubmitted() && $form->isValid()) {
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('historia_clinica_index');
}
return $this->render('historia_clinica/edit.html.twig', [
'historia_clinica' => $historiaClinica,
'preparacion' => $preparacion,
'form' => $form->createView(),
'form_dx' => $form_dx->createView(),
'cform' => $cform->createView(),
'empresa' => $empresa
]);
}
/**
* @Route("/{id}/edit/new", name="historia_clinica_edit_new", methods={"GET","POST"})
*/
public function edit_new(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository, SessionInterface $session,PreparacionRepository $preparacionRepository): Response
{
$preparaciones = $preparacionRepository->buscaPreparacionxPaciente($historiaClinica->getPaciente()->getId());
//dd($preparaciones->getResult());
$currentUrl = $request->getRequestUri();
$session->set('previous_url', $currentUrl);//dd($currentUrl);
$agenda = $historiaClinica->getAgenda();
$preparacion = $agenda->getPreparacion();
$session = $request->getSession();
$session->set('paciente',$historiaClinica->getPaciente());
$form = $this->createForm(HistoriaClinicaNewType::class, $historiaClinica);
$form->handleRequest($request);
$cform = $this->createForm(HistoriaClinicaCardioType::class, $historiaClinica);
$cform->handleRequest($request);
$diagnosticosHistoriaClinica = new DiagnosticosHistoriaClinica();
$form_dx = $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
$form_dx->handleRequest($request);
$preparacion = $historiaClinica->getAgenda()->getPreparacion();
//dd($preparacion);
$empresa = $empresaRepository->find(1);
//dd($empresa);
$paciente = $historiaClinica->getPaciente();
$form->get('antecedentes_familiares')->setData($paciente->getAntecedentesFamiliares());
$form->get('mas_antecedentes_personales')->setData($paciente->getMasAntecedentesPersonales());
//$form->get('antecedentes_quirurgicos')->setData($paciente->getAntecedentesQuirurgicos());
$form->get('observacion_paciente')->setData($paciente->getObservacion());
$form->get('medicacion')->setData($paciente->getMedicacion());
$form->get('alergias')->setData($paciente->getAlergias());
$form->get('alcohol')->setData($paciente->getAlcohol());
//$form->get('tabaco')->setData($paciente->getTabaco());
//$form->get('drogas')->setData($paciente->getDrogas());
$presion = '';
$estatura = '';
$peso = '';
if($preparacion != null){
$presion = $preparacion->getPresion();
$estatura = $preparacion->getEstatura();
$peso = $preparacion->getPeso();
}
$form->get('presion')->setData($presion);
$form->get('estatura')->setData($estatura);
$form->get('peso')->setData($peso);
if ($form->isSubmitted() && $form->isValid()) {
if($preparacion != null){
$preparacion->setPresion($presion);
$preparacion->setEstatura($estatura);
$preparacion->setPeso($peso);
}
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('historia_clinica_index');
}
$estudios = $historiaClinica->getEstudios();
if(count($estudios) > 0){
$estudio = $estudios[0];
}else{
$estudio = new Estudio();
}
$formx = $this->createForm(EstudioTypeF::class, $estudio);
$formx->handleRequest($request);
$imagenesestudio = new ImagenesEstudio;
$iform = $this->createForm(ImagenesEstudioType::class, $imagenesestudio);
$iform->handleRequest($request);
return $this->render('historia_clinica/edit_new.html.twig', [
'historia_clinica' => $historiaClinica,
'preparacion' => $preparacion,
'form' => $form->createView(),
'form_dx' => $form_dx->createView(),
'cform' => $cform->createView(),
'empresa' => $empresa,
'formx' => $formx->createView(),
'estudio' => $estudio,
'iform' => $iform->createView(),
'preparaciones' => $preparaciones->getResult(),
]);
}
/**
* @Route("/estudio/{id}/sedit/storage", name="historia_edit_archivo_storage", methods={"GET","POST"})
*/
public function historia_edit_storage(Request $request, HistoriaClinica $historiaClinica): Response
{
$ip = $request->getClientIp();
$user = $this->security->getUser();
$estudios = $historiaClinica->getEstudios();
if(count($estudios) > 0){
$estudio = $estudios[0];
}else{
$estudio = new Estudio();
$estudio->setHistoria($historiaClinica);
$estudio->setIpCrea($ip);
$estudio->setIpModifica($ip);
$estudio->setUserCrea($user->getId());
$estudio->setUserModifica($user->getId());
$estudio->setEstado(1);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($estudio);
$entityManager->flush();
}
if($estudio->getProcedimiento() == null){
$procedimiento = $historiaClinica->getAgenda()->getProcedimiento();
$estudio->setProcedimiento($procedimiento);
}
$formx = $this->createForm(EstudioTypeF::class, $estudio);
$formx->handleRequest($request);
if ($formx->isSubmitted() && $formx->isValid()) {
$brochureFile = $formx->get('archivo')->getData();
//dd($brochureFile);
if ($brochureFile) {
$originalFilename = pathinfo($brochureFile->getClientOriginalName(), PATHINFO_FILENAME);
// this is needed to safely include the file name as part of the URL
//$safeFilename = $slugger->slug($originalFilename);
$safeFilename = $estudio->getHistoria()->getPaciente()->getCedula().'_'.$estudio->getId().'_'.date('YmdHis');
//$newFilename = $safeFilename.'-'.uniqid().'.'.$brochureFile->guessExtension();
$newFilename = $safeFilename.'.'.$brochureFile->guessExtension();
// Move the file to the directory where brochures are stored
try {
$brochureFile->move(
$this->getParameter('directorio_estudios'),
$newFilename
);
} catch (FileException $e) {
// ... handle exception if something happens during file upload
}
$estudio->setArchivo($newFilename);
$recargar = 1;
}
$this->getDoctrine()->getManager()->flush();
return $this->json(['estado' => 'ok', 'estudio' => $estudio->getId(),'recargar' => $recargar]);
}
return $this->json(['estado' => 'ok', 'estudio' => $estudio->getId(),'recargar' => $recargar]);
}
/**
* @Route("/{id}/edit/ajax", name="historia_clinica_edit_ajax", methods={"POST"})
*/
public function edit_ajax(Request $request, HistoriaClinica $historiaClinica): Response
{
$form = $this->createForm(HistoriaClinicaType::class, $historiaClinica);
$form->handleRequest($request);
$ip = $request->getClientIp();
$user = $this->security->getUser();
if ($form->isSubmitted() && $form->isValid()) {
$historiaClinica->setIpModifica($ip);
$historiaClinica->setUserModifica($user->getId());
$historiaClinica->setenfermedadActual($historiaClinica->getEvolucion());
$this->getDoctrine()->getManager()->flush();
return $this->json(['estado' => 'ok', 'historiaclinica' => $historiaClinica->getId()]);
}
return $this->json(['estado' => 'error', 'historiaclinica' => null]);
}
/**
* @Route("/{id}/edit/ajax/new", name="historia_clinica_edit_ajax_new", methods={"POST"})
*/
public function edit_ajax_new(Request $request, HistoriaClinica $historiaClinica, SessionInterface $session): Response
{
$agenda = $historiaClinica->getAgenda();
$preparacion = $agenda->getPreparacion();
$form = $this->createForm(HistoriaClinicaNewType::class, $historiaClinica);
$form->handleRequest($request);
$ip = $request->getClientIp();
$user = $this->security->getUser();
if ($form->isSubmitted() && $form->isValid()) {
$paciente = $historiaClinica->getPaciente();
$observacion_paciente = $form->get('observacion_paciente')->getData();
$af = $form->get('antecedentes_familiares')->getData();
$ap = $form->get('mas_antecedentes_personales')->getData();
//$aq = $form->get('antecedentes_quirurgicos')->getData();
$med = $form->get('medicacion')->getData();
$ale = $form->get('alergias')->getData();
$alc = $form->get('alcohol')->getData();
//$tab = $form->get('tabaco')->getData();
//$dro = $form->get('drogas')->getData();
$paciente->setObservacion($observacion_paciente);
$paciente->setAntecedentesFamiliares($af);
$paciente->setMasAntecedentesPersonales($ap);
//$paciente->setAntecedentesQuirurgicos($aq);
$paciente->setMedicacion($med);
$paciente->setAlergias($ale);
$paciente->setAlcohol($alc);
//$paciente->setTabaco($tab);
//$paciente->setDrogas($dro);
$presion = $form->get('presion')->getData();
$estatura = $form->get('estatura')->getData();
$peso = $form->get('peso')->getData();
if($preparacion != null){
$preparacion->setPresion($presion);
$preparacion->setEstatura($estatura);
$preparacion->setPeso($peso);
}
$historiaClinica->setIpModifica($ip);
$historiaClinica->setUserModifica($user->getId());
$historiaClinica->setenfermedadActual($historiaClinica->getEvolucion());
$this->getDoctrine()->getManager()->flush();
return $this->json(['estado' => 'ok', 'historiaclinica' => $historiaClinica->getId()]);
}
return $this->json(['estado' => 'error', 'historiaclinica' => null]);
}
/**
* @Route("/{id}/cardio/store/hc", name="historia_clinica_store_cardio", methods={"POST"})
*/
public function store_cardio(Request $request, HistoriaClinica $historiaClinica): Response
{
$cform = $this->createForm(HistoriaClinicaCardioType::class, $historiaClinica);
$cform->handleRequest($request);
$ip = $request->getClientIp();
$user = $this->security->getUser();
if ($cform->isSubmitted() && $cform->isValid()) {
$this->getDoctrine()->getManager()->flush();
return $this->json(['estado' => 'ok', 'historiaclinica' => $historiaClinica->getId()]);
}
return $this->json(['estado' => 'error', 'historiaclinica' => null]);
}
/**
* @Route("/{id}", name="historia_clinica_delete", methods={"DELETE"})
*/
public function delete(Request $request, HistoriaClinica $historiaClinica): Response
{
if ($this->isCsrfTokenValid('delete'.$historiaClinica->getId(), $request->request->get('_token'))) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($historiaClinica);
$entityManager->flush();
}
return $this->redirectToRoute('historia_clinica_index');
}
/**
* @Route("/{id}/edit/antecedente", name="historia_clinica_antecedente_edit", methods={"GET"})
*/
public function edit_antecedente(Request $request, HistoriaClinica $historiaClinica): Response
{
$paciente = $historiaClinica->getPaciente();
$form = $this->createForm(AntecedenteType::class, $paciente);
$form->handleRequest($request);
return $this->render('historia_clinica/edit_antecedente.html.twig', [
'historiaClinica'=> $historiaClinica,
'paciente' => $paciente,
'form' => $form->createView(),
]);
}
/**
* @Route("/{id}/edit/antecedente/update", name="historia_clinica_antecedente_update", methods={"POST"})
*/
public function edit_antecedente_update(Request $request, HistoriaClinica $historiaClinica, PacienteRepository $pacienteRepository): Response
{
$paciente = $historiaClinica->getPaciente();
$form = $this->createForm(AntecedenteType::class, $paciente);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//dd($form->get('enfermedad')->getData());
//$paciente->setEnfermedad($form->get('enfermedad')->getData());
$paciente->setMasAntecedentesPersonales($form->get('mas_antecedentes_personales')->getData());
$paciente->setAlergias($form->get('alergias')->getData());
$paciente->setAlcohol($form->get('alcohol')->getData());
$paciente->setDrogas($form->get('drogas')->getData());
$paciente->setAntecedentesQuirurgicos($form->get('antecedentes_quirurgicos')->getData());
$paciente->setAntecedentesFamiliares($form->get('antecedentes_familiares')->getData());
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($paciente);
$entityManager->flush();
return $this->json(['estado' => 'ok']);
}
return $this->json(['estado' => 'error']);
}
/**
* @Route("/imprimir/historia/{id}", name="historia_imprimir", methods={"GET"})
*/
public function imprimir_historia(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
$historia = $historiaClinica;
$receta = $historia->getRecetas();
//$empresa = $empresaRepository->find('1');
$unidad = $historiaClinica->getAgenda()->getSala()->getUnidad();
$empresa = $empresaRepository->find($unidad->getId());
//dd();
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/historia_pdf.html.twig',[
'historia' => $historia,
'empresa' => $empresa
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream($historia->getPaciente()->getApellido1().".pdf", [
"Attachment" => false
]);
}
/**
* @Route("/imprimir/historia_new/{id}", name="historia_imprimir_new", methods={"GET"})
*/
public function imprimir_historia_new(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
// Configure Dompdf segĂºn sus necesidades
$historia = $historiaClinica;
$receta = $historia->getRecetas();
$unidad = $historiaClinica->getAgenda()->getSala()->getUnidad();
$empresa = $empresaRepository->find($unidad->getId());
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/historia_pdf_new.html.twig',[
'historia' => $historia,
'empresa' => $empresa,
'unidad' => $unidad
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
return new Response(
$dompdf->output(),
200,
[
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="Historia_'.$historia->getPaciente()->getCedula().'.pdf"',
]
);
}
/**
* @Route("/cedula/jpg/to/pdf/{id}", name="historia_imprimir_cedula_jpg", methods={"GET"})
*/
public function imprimir_cedula_jpg(Request $request, HistoriaClinica $historiaClinica): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
$historia = $historiaClinica;
$receta = $historia->getRecetas();
//dd();
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/cedula_jpg.html.twig',[
'historia' => $historia,
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream($historia->getPaciente()->getApellido1().".pdf", [
"Attachment" => false
]);
}
/**
* @Route("/{id}/obtener/ajax", name="historia_clinica_obtener_ajax", methods={"GET"})
*/
public function obtener_ajax(HistoriaClinica $historiaClinica): Response
{
$receta = '';
if($historiaClinica->getRecetas()->count() > 0){
$receta = $historiaClinica->getRecetas()->first()->getObservacion();
}
return $this->json([
'motivo' => $historiaClinica->getMotivo(),
'enfermedad_actual' => $historiaClinica->getEnfermedadActual(),
'revision_actual_organos_y_sistemas' => $historiaClinica->getRevisionActualOrganosYSistemas(),
'examen_fisico' => $historiaClinica->getExamenFisico(),
'indicaciones' => $historiaClinica->getIndicaciones(),
'evolucion' => $historiaClinica->getEvolucion(),
'receta_observacion' => $receta,
]);
}
/**
* @Route("/imprimir/acta_entrega/{id_agenda}", name="acta_entrega_imprimir", methods={"GET"})
*/
public function imprimir_acta_entrega(Request $request, $id_agenda): Response
{
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/acta_entrega_pdf.html.twig', [
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
//$dompdf->setPaper('A4', 'portrait');
$dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("AE_", [
"Attachment" => false
]);
}
/**
* @Route("/imprimir/historia/{id_agenda}/ae", name="ae_imprimir", methods={"GET"})
*/
public function imprimir_ae(Request $request, $id_agenda, AgendaRepository $agendaRepository, EmpresaRepository $empresaRepository ): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
$agenda = $agendaRepository->find($id_agenda);
$empresa = $empresaRepository->find(1);
$arr_mes = ['', 'ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE'];
$mes = date_format($agenda->getinicio(), 'm');
$lmes = $arr_mes[intval($mes)];
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
$filename = './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
$file_exists = file_exists($filename);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/ae_pdf.html.twig',[
'agenda' => $agenda,
'empresa' => $empresa,
'lmes' => $lmes,
'file_exists' => $file_exists,
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("mypdf.pdf", [
"Attachment" => false
]);
}
/**
* @Route("/imprimir/historia/{id_agenda}/ac", name="ac_imprimir", methods={"GET"})
*/
public function imprimir_ac (Request $request, $id_agenda, AgendaRepository $agendaRepository, EmpresaRepository $empresaRepository ): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
$agenda = $agendaRepository->find($id_agenda);
$empresa = $empresaRepository->find(1);
$arr_mes = ['', 'ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE'];
$mes = date_format($agenda->getinicio(), 'm');
$lmes = $arr_mes[intval($mes)];
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
$filename = './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
$file_exists = file_exists($filename);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/ac_pdf.html.twig',[
'agenda' => $agenda,
'empresa' => $empresa,
'lmes' => $lmes,
'file_exists' => $file_exists,
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("mypdf.pdf", [
"Attachment" => false
]);
}
/**
* @Route("/cardiologia/{id_agenda}", name="cardiologia", methods={"GET"})
*/
public function cardiologia(Request $request, $id_agenda, AgendaRepository $agendaRepository, EmpresaRepository $empresaRepository ): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
$agenda = $agendaRepository->find($id_agenda);
$empresa = $empresaRepository->find(1);
$arr_mes = ['', 'ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE'];
$mes = date_format($agenda->getinicio(), 'm');
$lmes = $arr_mes[intval($mes)];
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
$filename = './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
$file_exists = file_exists($filename);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/cardiologia_pdf.html.twig',[
'agenda' => $agenda,
'empresa' => $empresa,
'lmes' => $lmes,
'file_exists' => $file_exists,
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("mypdf.pdf", [
"Attachment" => false
]);
}
/**
* @Route("/cardiologia2/{id_agenda}", name="cardiologia2", methods={"GET"})
*/
public function cardiologia2(Request $request, $id_agenda, AgendaRepository $agendaRepository, EmpresaRepository $empresaRepository ): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
$agenda = $agendaRepository->find($id_agenda);
$empresa = $empresaRepository->find(1);
$arr_mes = ['', 'ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE'];
$mes = date_format($agenda->getinicio(), 'm');
$lmes = $arr_mes[intval($mes)];
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
$filename = './uploads/copia_cedula/firma_'.$agenda->getPaciente()->getCedula().'.png';
$file_exists = file_exists($filename);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/cardiologia2_pdf.html.twig',[
'agenda' => $agenda,
'empresa' => $empresa,
'lmes' => $lmes,
'file_exists' => $file_exists,
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("mypdf.pdf", [
"Attachment" => false
]);
}
/**
* @Route("/formulario/007/{id}", name="formulario007_imprimir", methods={"GET"})
*/
public function formulario_007(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
$empresa = $empresaRepository->find(1);
$spreadsheet = new Spreadsheet();
/* @var $sheet \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet */
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle("Formulario 007");
$sheet->setCellValue('B2', 'ESTABLECIMIENTO SOLICITANTE')->mergeCells('B2:E2');
$sheet->setCellValue('F2', 'NOMBRE')->mergeCells('F2:I2');
$sheet->setCellValue('J2', 'APELLIDO')->mergeCells('J2:M2');
$sheet->setCellValue('N2', 'SEXO (F-M)')->mergeCells('N2:O2');
$sheet->setCellValue('P2', 'EDAD');
$sheet->setCellValue('Q2', 'N HISTORIA CLINICA')->mergeCells('Q2:R2');
$sheet->getStyle('B2:R2')->getFont()->setBold(true);
$sheet->setCellValue('B3', $empresa->getNombreCorto() )->mergeCells('B3:E3');
$sheet->setCellValue('F3', $historiaClinica->getPaciente()->getNombre1().' '.$historiaClinica->getPaciente()->getNombre2())->mergeCells('F3:I3');
$sheet->setCellValue('J3', $historiaClinica->getPaciente()->getApellido1().' '.$historiaClinica->getPaciente()->getApellido2())->mergeCells('J3:M3');
if($historiaClinica->getPaciente()->getSexo()){
$sexo = 'M';
}else{
$sexo = 'F';
}
$sheet->setCellValue('N3', $sexo)->mergeCells('N3:O3');
$sheet->setCellValue('P3', $historiaClinica->getPaciente()->CalculaEdad());
$sheet->setCellValue('Q3', $historiaClinica->getPaciente()->getCedula())->mergeCells('Q3:R3');
$sheet->setCellValue('B4', ' ')->mergeCells('B4:R4');
$sheet->setCellValue('B5', '6 CUADRO CLINICO DE INTERCONSULTA')->mergeCells('B5:R5');
$sheet->getStyle('B5')->getFont()->setBold(true);
$sheet->setCellValue('B6', $historiaClinica->getEvolucion())->mergeCells('B6:R8');
$sheet->getStyle('B6')->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$sheet->getStyle('B6')->getAlignment()->setWrapText(true);
$sheet->setCellValue('B9', '')->mergeCells('B9:R9');
$sheet->setCellValue('B10', '7 RESUMEN DEL CRITERIO CLINICO')->mergeCells('B10:R10');
$sheet->getStyle('B10')->getFont()->setBold(true);
$sheet->setCellValue('B11', '')->mergeCells('B11:R13');
$styleArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN,
],
],
];
$sheet->setCellValue('B15', '8 DIAGNOSTICO')->mergeCells('B15:E15');
$sheet->setCellValue('F15', 'PRE - PRESUNTIVO DEF - DEFINITIVO')->mergeCells('F15:J15');
$sheet->setCellValue('K15', 'CIE');
$sheet->setCellValue('L15', 'PRE')->mergeCells('L15:M15');
$sheet->setCellValue('N15', 'DEF')->mergeCells('N15:O15');
$sheet->getStyle('B15:N15')->getFont()->setBold(true);
$sheet->getStyle('B15:O15')->applyFromArray($styleArray);
$i=16;
$dxs = $historiaClinica->getDiagnosticosHistoriaClinicas();
foreach ($dxs as $value) {
$sheet->setCellValue('B'.$i, $value->getCie10()->getNombre())->mergeCells('B'.$i.':J'.$i);
$sheet->setCellValue('K'.$i, $value->getCie10()->getCodigo());
$pre = ''; $def = '';
if($value->getTipo()=='PRESUNTIVO'){
$pre = 'X';
}else{
$def = 'X';
}
$sheet->setCellValue('L'.$i, $pre)->mergeCells('L'.$i.':M'.$i);
$sheet->setCellValue('N'.$i, $def)->mergeCells('N'.$i.':O'.$i);
$sheet->getStyle('B'.$i.':O'.$i)->applyFromArray($styleArray);
$i++;
}
$i++;
$sheet->setCellValue('B'.$i, '9 PLAN DIAGNOSTICO PROPUESTO')->mergeCells('B'.$i.':R'.$i);
$sheet->getStyle('B'.$i.':R'.$i)->getFont()->setBold(true);
$sheet->getStyle('B'.$i.':R'.$i)->applyFromArray($styleArray);
$i++;$j = $i + 2;
$sheet->setCellValue('B'.$i, '')->mergeCells('B'.$i.':R'.$j);
$sheet->getStyle('B'.$i.':R'.$j)->applyFromArray($styleArray);
$i = $i + 3;
$sheet->setCellValue('B'.$i, '')->mergeCells('B'.$i.':R'.$i);
$i++;
$sheet->setCellValue('B'.$i, '10 PLAN DE TRATAMIENTO PROPUESTO')->mergeCells('B'.$i.':R'.$i);
$sheet->getStyle('B'.$i.':R'.$i)->getFont()->setBold(true);
$sheet->getStyle('B'.$i.':R'.$i)->applyFromArray($styleArray);
$i++;$k = $i + 2;
$sheet->setCellValue('B'.$i, '')->mergeCells('B'.$i.':R'.$k);
$sheet->getStyle('B'.$i.':R'.$k)->applyFromArray($styleArray);
$i = $i + 3;
$sheet->setCellValue('B'.$i, '')->mergeCells('B'.$i.':R'.$i);
$i++;
$sheet->setCellValue('B'.$i, '')->mergeCells('B'.$i.':K'.$i);
$sheet->setCellValue('L'.$i, 'cĂ³digo');
$sheet->setCellValue('M'.$i, '')->mergeCells('M'.$i.':R'.$i);
$i++;
$sheet->setCellValue('B'.$i, 'Fecha');
$sheet->setCellValue('C'.$i, '');
$sheet->setCellValue('D'.$i, 'Hora');
$sheet->setCellValue('E'.$i, '')->mergeCells('E'.$i.':F'.$i);
$sheet->setCellValue('G'.$i, 'Profesional')->mergeCells('G'.$i.':H'.$i);
$sheet->setCellValue('I'.$i, '')->mergeCells('I'.$i.':K'.$i);
$sheet->setCellValue('L'.$i, '');
$sheet->setCellValue('M'.$i, 'Firma')->mergeCells('M'.$i.':N'.$i);
$sheet->setCellValue('O'.$i, 'Firma')->mergeCells('O'.$i.':P'.$i);
$sheet->setCellValue('Q'.$i, 'NĂºmero de Hoja');
$sheet->setCellValue('R'.$i, '');
$i++;
$sheet->setCellValue('B'.$i, 'SNS-MSP / HCU-form.007 / 2008 INTERCONSULTA - INFORME')->mergeCells('B'.$i.':R'.$i);
$i++;
$sheet->setCellValue('B'.$i, '')->mergeCells('B'.$i.':R'.$i);
$sheet->getStyle('B2:R10')->applyFromArray($styleArray);
$sheet->getStyle('B11:R13')->applyFromArray($styleArray);
// Create your Office 2007 Excel (XLSX Format)
$writer = new Xlsx($spreadsheet);
// Create a Temporary file in the system
$fileName = 'FORMULARIO 007.xlsx';
$temp_file = tempnam(sys_get_temp_dir(), $fileName);
// Create the excel file in the tmp directory of the system
$writer->save($temp_file);
// Return the excel file as an attachment
return $this->file($temp_file, $fileName, ResponseHeaderBag::DISPOSITION_INLINE);
}
/**
* @Route("/formulario/certificado/asistencia/{id}", name="asistencia_formulario", methods={"GET"})
*/
public function formulario_asistencia(Request $request, HistoriaClinica $historiaClinica): Response
{
$form = $this->createForm(HistoriaCertificadoType::class, $historiaClinica);
$form->handleRequest($request);
return $this->render('historia_clinica/formulario_asistencia.html.twig', [
'historiaClinica'=> $historiaClinica,
'form' => $form->createView(),
]);
}
/**
* @Route("/guardar/formulario/certificado/asistencia/{id}", name="asistencia_formulario_guardar", methods={"POST"})
*/
public function formulario_asistencia_guardar(Request $request, HistoriaClinica $historiaClinica): Response
{
$form = $this->createForm(HistoriaCertificadoType::class, $historiaClinica);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($historiaClinica);
$entityManager->flush();
return $this->json(['estado' => 'ok']);
}
return $this->json(['estado' => 'error']);
}
/**
* @Route("/imprimir/certificado/asistencia/{id}", name="asistencia_imprimir", methods={"GET"})
*/
public function imprimir_asistencia(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
//$empresa = $empresaRepository->find(1);
$unidad = $historiaClinica->getAgenda()->getSala()->getUnidad();
$empresa = $empresaRepository->find($unidad->getId());
$inicio = $historiaClinica->getAgenda()->getInicio();
$mes = ['', 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'];
$nmes = intval(date_format($inicio,'m'));
$txtmes = $mes[$nmes];//dd($txtmes);
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/certificado_asistencia_pdf.html.twig',[
'historiaClinica' => $historiaClinica,
'empresa' => $empresa,
'txtmes' => $txtmes
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("Asistencia_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
"Attachment" => false
]);
exit();
}
/**
* @Route("/imprimir/certificado/medico/{id}", name="certificado_medico_imprimir", methods={"GET"})
*/
public function imprimir_certificado_medico(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
//dd();
//$empresa = $empresaRepository->find(1);
$unidad = $historiaClinica->getAgenda()->getSala()->getUnidad();
$empresa = $empresaRepository->find($unidad->getId());
$inicio = $historiaClinica->getAgenda()->getInicio();
$mes = ['', 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'];
$nmes = intval(date_format($inicio,'m'));
$txtmes = $mes[$nmes];//dd($txtmes);
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/certificado_medico_pdf.html.twig',[
'historiaClinica' => $historiaClinica,
'empresa' => $empresa,
'txtmes' => $txtmes
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("Descanso_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
"Attachment" => false
]);
}
/**
* @Route("/nimprimir/certificado/medico/covid/{id}", name="certificado_medico_imprimir_covid", methods={"GET"})
*/
public function imprimir_certificado_medico_covid(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
//dd();
//$empresa = $empresaRepository->find(1);
$unidad = $historiaClinica->getAgenda()->getSala()->getUnidad();
$empresa = $empresaRepository->find($unidad->getId());
$inicio = $historiaClinica->getAgenda()->getInicio();
$mes = ['', 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'];
$nmes = intval(date_format($inicio,'m'));
$txtmes = $mes[$nmes];//dd($txtmes);
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/certificado_medico_covid_pdf.html.twig',[
'historiaClinica' => $historiaClinica,
'empresa' => $empresa,
'txtmes' => $txtmes
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("Descanso_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
"Attachment" => false
]);
exit();
}
/**
* @Route("/nimprimir/certificado/medico/enfermedad/general/{id}", name="certificado_medico_imprimir_enfermedad_general", methods={"GET"})
*/
public function imprimir_certificado_medico_enfermedad_general(Request $request, HistoriaClinica $historiaClinica, EmpresaRepository $empresaRepository): Response
{
// Configure Dompdf segĂºn sus necesidades
//$historia = $historiaClinicaRepository->findByPaciente($recetum->getPaciente()->getId(),date_format($fecha_receta,'Y-m-d'));
//$dxs = $historia->getDiagnosticosHistoriaClinicas();
//dd();
//$empresa = $empresaRepository->find(1);
$unidad = $historiaClinica->getAgenda()->getSala()->getUnidad();
$empresa = $empresaRepository->find($unidad->getId());
$inicio = $historiaClinica->getAgenda()->getInicio();
$mes = ['', 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'];
$nmes = intval(date_format($inicio,'m'));
$txtmes = $mes[$nmes];//dd($txtmes);
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
//$pdfOptions->set('tempDir', 'C:\xampp\htdocs\sy_liquidacion2\public\assets\images');
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/certificado_medico_enfermedad_general_pdf.html.twig',[
'historiaClinica' => $historiaClinica,
'empresa' => $empresa,
'txtmes' => $txtmes
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("Descanso_".$historiaClinica->getPaciente()->getApellido1()."-".$historiaClinica->getPaciente()->getNombre1().".pdf", [
"Attachment" => false
]);
}
/**
* @Route("/consulta/imprimir/{id}", name="historia_clinica_consulta_imprimir", methods={"GET"})
*/
public function consulta_imprimir(HistoriaClinica $historiaClinica, OdontogramaRepository $odontogramaRepository, UserRepository $userRepository): Response
{
/*return $this->render('historia_clinica/impresiones.html.twig', [
'historiaClinica' => $historiaClinica,
]);*/
$agenda = $historiaClinica->getAgenda();
$paciente = $historiaClinica->getAgenda()->getPaciente();
$estudios = $historiaClinica->getEstudios();
//dd($estudios);
$odontogramas = $odontogramaRepository->findBy(['paciente' => $paciente, 'estado' => 1],[ 'fecha' => 'DESC']);
return $this->render('historia_clinica/impresiones.html.twig', [
'historiaClinica' => $historiaClinica,
'userRepository' => $userRepository,
'odontogramas' => $odontogramas,
'agenda' => $agenda,
'estudios' => $estudios
]);
}
/**
* @Route("/as400/pantallas/imprimir/{id}", name="imprimir_as400_pantallas", methods={"GET"})
*/
public function imprimir_as400_pantallas(Request $request, HistoriaClinica $historiaClinica): Response
{
/*return $this->render('historia_clinica/pantallas_as400.html.twig', [
'historiaClinica' => $historiaClinica,
]);*/
//dd("hola");
$pdfOptions = new Options();
//$pdfOptions->set('defaultFont', 'Arial');
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('isHtml5ParserEnabled', TRUE);
// Crea una instancia de Dompdf con nuestras opciones
$dompdf = new Dompdf($pdfOptions);
// Recupere el HTML generado en nuestro archivo twig
$html = $this->renderView('historia_clinica/pantallas_as400.html.twig',[
'historiaClinica' => $historiaClinica,
]);
// Cargar HTML en Dompdf
$dompdf->loadHtml($html);
//$dompdf->loadHtmlFile($html);
// (Opcional) Configure el tamaño del papel y la orientaciĂ³n 'vertical' o 'vertical'
$dompdf->setPaper('A4', 'portrait');
//$dompdf->setPaper('A4', 'landscape');
// Renderiza el HTML como PDF
$dompdf->render();
// EnvĂe el PDF generado al navegador (vista en lĂnea)
$dompdf->stream("pantallas_as400.pdf", [
"Attachment" => false
]);
// Send some text response
return new Response("The PDF file has been succesfully generated !");
}
/**
* @Route("/paciente/{id_paciente}", name="historia_clinica_index_paciente", methods={"GET","POST"})
*/
public function index_paciente(HistoriaClinicaRepository $historiaClinicaRepository, AgendaRepository $agendaRepository, PaginatorInterface $paginator, Request $request, $id_paciente, PacienteResultadosRepository $pacienteResultadosRepository, PacienteRepository $pacienteRepository): Response
{
$query = $agendaRepository->findByPaciente($id_paciente);
$paciente = $pacienteRepository->find($id_paciente);
//dd($query->getResult());
$resultados = $pacienteResultadosRepository->findBy(['estado' => '1', 'paciente' => $paciente],['fechaResultado' => 'DESC']);
$historias_clinicas = $paginator->paginate(
$query,
$request->query->getInt('page',1),
100
);
return $this->render('historia_clinica/paciente.html.twig', [ 'historias_clinicas' => $historias_clinicas, 'resultados' => $resultados,'paciente'=>$paciente ]);
}
/**
* @Route("/paciente/detalle/{id}", name="historia_clinica_consulta_detalle", methods={"GET"})
*/
public function consulta_detalle(HistoriaClinica $historiaClinica, OdontogramaRepository $odontogramaRepository, UserRepository $userRepository): Response
{
//dd($historiaClinica);
$preparacion = $historiaClinica->getAgenda()->getPreparacion();
$estudios = $historiaClinica->ObtenerEstudios();
$odontogramas = $odontogramaRepository->findBy(['paciente' => $historiaClinica->getpaciente(), 'estado' => 1],[ 'fecha' => 'DESC']);
return $this->render('historia_clinica/detalle_consulta.html.twig', [
'historia_clinica' => $historiaClinica,
'preparacion' => $preparacion,
'estudios' => $estudios,
'odontogramas' => $odontogramas,
'userRepository' => $userRepository,
]);
}
/**
* @Route("/paciente/detalle_new/{id}", name="historia_clinica_consulta_detalle_new", methods={"GET"})
*/
public function consulta_detalle_new(HistoriaClinica $historiaClinica, OdontogramaRepository $odontogramaRepository, UserRepository $userRepository): Response
{
//dd($historiaClinica);
$preparacion = $historiaClinica->getAgenda()->getPreparacion();
$estudios = $historiaClinica->ObtenerEstudios();
$odontogramas = $odontogramaRepository->findBy(['paciente' => $historiaClinica->getpaciente(), 'estado' => 1],[ 'fecha' => 'DESC']);
return $this->render('historia_clinica/detalle_consulta_new.html.twig', [
'historia_clinica' => $historiaClinica,
'preparacion' => $preparacion,
'estudios' => $estudios,
'odontogramas' => $odontogramas,
'userRepository' => $userRepository,
]);
}
/**
* @Route("/facturacion/{id_paciente}", name="historia_clinica_index_facturacion", methods={"GET","POST"})
*/
public function index_paciente_facturacion(HistoriaClinicaRepository $historiaClinicaRepository, AgendaRepository $agendaRepository, PaginatorInterface $paginator, Request $request, $id_paciente): Response
{
$query = $agendaRepository->findByPaciente_Con_Proc($id_paciente);
//dd($query->getResult());
$historias_clinicas = $paginator->paginate(
$query,
$request->query->getInt('page',1),
30
);
return $this->render('historia_clinica/paciente_facturacion.html.twig', [ 'historias_clinicas' => $historias_clinicas ]);
}
/**
* @Route("/suspender/{id}", name="historia_suspender", methods={"GET","POST"})
*/
public function suspender(Request $request, Agenda $agenda): Response
{
//dd($agenda);
$ip = $request->getClientIp();
$user = $this->security->getUser();
$logagenda = new LogAgenda();
$entityManager = $this->getDoctrine()->getManager();
$sala = $agenda->getSala();
$logagenda->setSala($sala);
$logagenda->setIpCrea($ip);
$logagenda->setIpModifica($ip);
$agenda->setEstado(0);
$agenda->setEstadoAgenda(3);
$logagenda->setEstadoAgenda(3);
$logagenda->setUserCrea($user->getId());
$logagenda->setUserModifica($user->getId());
$inicio = $agenda->getInicio();
$fin = $agenda->getFin();
$seguro = $agenda->getSeguro();
$especialidad = $agenda->getEspecialidad();
$doctor = $agenda->getDoctor();
$observacion = 'NO ASISTE MARCADO POR EL MEDICO';
$descripcion = 'SUSPENDER';
$agenda->setObservacion($observacion);
$logagenda->setInicio($inicio);
$logagenda->setFin($fin);
$logagenda->setObservacion($observacion);
$logagenda->setAgenda($agenda);
$logagenda->setSeguro($seguro);
$logagenda->setEspecialidad($especialidad);
$logagenda->setDoctor($doctor);
$logagenda->setDescripcion($descripcion);
//$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($logagenda);
//$entityManager->persist($agenda);
$entityManager->flush();
return $this->json(['estado' => 'ok']);
}
/**
* @Route("/index/coordinacion/enfermeria", name="historia_clinica_index_coordinacion_enfermeria", methods={"GET","POST"})
*/
public function index_coordinacion_enfermeria(HistoriaClinicaRepository $historiaClinicaRepository, AgendaRepository $agendaRepository, PaginatorInterface $paginator, Request $request): Response
{
$user = $this->security->getUser();
date_default_timezone_set("America/Guayaquil");
$agenda = new Agenda();
//$form = $this->createForm(BuscaPreparacionType::class,$agenda);
$form = $this->createForm(BuscaPreparacionType_pac::class,$agenda);
$form->handleRequest($request);
$fecha = $form->get('inicio')->getData();
$fin = $form->get('fin')->getData();
$paciente = $form->get('paciente')->getData();
$session = $request->getSession();
$session->set('paciente',null);
$page = 0;
if($request->query->get('page') != null ){
$page = $request->query->get('page');
$page = ($page - 1)*100;
}
if($fecha==null){
$fecha = new \DateTime("now");
$form->get('inicio')->setData($fecha);
}
if($fin==null){
$fin = new \DateTime("now");
$form->get('fin')->setData($fin);
}
$flag_sb = false;
if ($form->isSubmitted() && $form->isValid()) {
$flag_sb = true;
}else{
$fecha2 = null; $fin2 = null;
if($request->query->get('inicio') != null ){
$fecha2 = $request->query->get('inicio');
}
if($request->query->get('fin') != null ){
$fin2 = $request->query->get('fin');
}
if($fecha2 != null || $fin2 != null){
$fecha2 = new \DateTime($fecha2);
$fin2 = new \DateTime($fin2);
//dd($fecha2, $fin2);
$form->get('inicio')->setData($fecha2);
$form->get('fin')->setData($fin2);
$fecha = $fecha2;$fin = $fin2;
}
}
$query = $agendaRepository->findByAdmisionadas_paciente_enfermeria(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
$agendas = $paginator->paginate(
$query,
$request->query->getInt('page',1),
100
);
return $this->render('historia_clinica/index_enfermeria.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]);
}
/**
* @Route("/paciente/detalle_new/enfermeria/{id}", name="historia_clinica_consulta_detalle_new_enfermeria", methods={"GET"})
*/
public function consulta_detalle_new_enfermeria(Agenda $agenda, UserRepository $userRepository, PreparacionRepository $preparacionRepository): Response
{
//$preparacion = $historiaClinica->getAgenda()->getPreparacion();
//$estudios = $historiaClinica->ObtenerEstudios();
//$odontogramas = $odontogramaRepository->findBy(['paciente' => $historiaClinica->getpaciente(), 'estado' => 1],[ 'fecha' => 'DESC']);
$preparaciones = $preparacionRepository->buscaPreparacionxPaciente($agenda->getPaciente()->getId());//dd($preparaciones->getResult());
return $this->render('historia_clinica/detalle_consulta_new_enfermeria.html.twig', [
'agenda' => $agenda,
//'preparacion' => $preparacion,
//'estudios' => $estudios,
//'odontogramas' => $odontogramas,
'userRepository' => $userRepository,
'preparaciones' => $preparaciones->getResult(),
]);
}
/**
* @Route("/index/guardiania", name="historia_clinica_index_guardiania", methods={"GET","POST"})
*/
public function index_guardiania(HistoriaClinicaRepository $historiaClinicaRepository, AgendaRepository $agendaRepository, PaginatorInterface $paginator, Request $request): Response
{
$user = $this->security->getUser();
date_default_timezone_set("America/Guayaquil");
$agenda = new Agenda();
//$form = $this->createForm(BuscaPreparacionType::class,$agenda);
$form = $this->createForm(BuscaPreparacionType_pac::class,$agenda);
$form->handleRequest($request);
$fecha = $form->get('inicio')->getData();
$fin = $form->get('fin')->getData();
$paciente = $form->get('paciente')->getData();
$session = $request->getSession();
$session->set('paciente',null);
$page = 0;
if($request->query->get('page') != null ){
$page = $request->query->get('page');
$page = ($page - 1)*100;
}
if($fecha==null){
$fecha = new \DateTime("now");
$form->get('inicio')->setData($fecha);
}
if($fin==null){
$fin = new \DateTime("now");
$form->get('fin')->setData($fin);
}
$flag_sb = false;
if ($form->isSubmitted() && $form->isValid()) {
$flag_sb = true;
}else{
$fecha2 = null; $fin2 = null;
if($request->query->get('inicio') != null ){
$fecha2 = $request->query->get('inicio');
}
if($request->query->get('fin') != null ){
$fin2 = $request->query->get('fin');
}
if($fecha2 != null || $fin2 != null){
$fecha2 = new \DateTime($fecha2);
$fin2 = new \DateTime($fin2);
$form->get('inicio')->setData($fecha2);
$form->get('fin')->setData($fin2);
$fecha = $fecha2;$fin = $fin2;
}
}
//$query = $agendaRepository->findByAdmisionadas_paciente_desc2(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
$query = $agendaRepository->findByAdmisionadas_paciente_asc_2(date_format($fecha,'Y-m-d'),date_format($fin,'Y-m-d'),$paciente);
$agendas = $paginator->paginate(
$query,
$request->query->getInt('page',1),
100
);
return $this->render('historia_clinica/index_guardiania.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]);
}
/**
* @Route("/seguros/factura/hc", name="historia_clinica_guarda_item", methods={"POST"})
*/
public function guarda_item(Request $request, AgendaRepository $agendaRepository)
{
// Acceder a los parĂ¡metros del objeto request
$id = $request->request->get('id'); // 87550
$factura = $request->request->get('factura'); // 12
$fechaFactura = $request->request->get('fecha_factura'); // ""
$fechaPago = $request->request->get('fecha_pago'); // ""
$verificado = $request->request->get('verificado'); // ""
$agenda = $agendaRepository->find($id);//dd($agenda);
$agenda->setFactura($factura);
$agenda->setFechaFactura($fechaFactura);
$agenda->setFechaPago($fechaPago);
$agenda->setVerificado($verificado);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($agenda);
$entityManager->flush();
return $this->json(['estado' => 'ok', 'agenda' => $agenda->getId()]);
}
}