<?php
namespace App\Controller;
use App\Entity\DiagnosticosHistoriaClinica;
use App\Form\DiagnosticosHistoriaClinicaType;
use App\Repository\DiagnosticosHistoriaClinicaRepository;
use App\Repository\HistoriaClinicaRepository;
use App\Repository\Cie10Repository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Security;
/**
* @Route("/diagnosticos_historia_clinica")
*/
class DiagnosticosHistoriaClinicaController extends AbstractController
{
/**
* @var Security
*/
private $security;
public function __construct(Security $security)
{
date_default_timezone_set("America/Guayaquil");
$this->security = $security;
}
/**
* @Route("/", name="diagnosticos_historia_clinica_index", methods={"GET"})
*/
public function index(DiagnosticosHistoriaClinicaRepository $diagnosticosHistoriaClinicaRepository): Response
{
return $this->render('diagnosticos_historia_clinica/index.html.twig', [
'diagnosticos_historia_clinicas' => $diagnosticosHistoriaClinicaRepository->findAll(),
]);
}
/**
* @Route("/index_ajax/{historiaclinica_id}", name="diagnosticos_historia_clinica_index_aj", methods={"GET"})
*/
public function index_ajax(DiagnosticosHistoriaClinicaRepository $diagnosticosHistoriaClinicaRepository, HistoriaClinicaRepository $historiaClinicaRepository, $historiaclinica_id): Response
{
$hc = $historiaClinicaRepository->find($historiaclinica_id);
//dd($hc->getDiagnosticosHistoriaClinicas());
return $this->render('diagnosticos_historia_clinica/index_aj.html.twig', [
'diagnosticos_historia_clinicas' => $hc->getDiagnosticosHistoriaClinicas(),
]);
}
/**
* @Route("/new", name="diagnosticos_historia_clinica_new", methods={"GET","POST"})
*/
public function new(Request $request): Response
{
$diagnosticosHistoriaClinica = new DiagnosticosHistoriaClinica();
$form = $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($diagnosticosHistoriaClinica);
$entityManager->flush();
return $this->redirectToRoute('diagnosticos_historia_clinica_index');
}
return $this->render('diagnosticos_historia_clinica/new.html.twig', [
'diagnosticos_historia_clinica' => $diagnosticosHistoriaClinica,
'form' => $form->createView(),
]);
}
/**
* @Route("/new_ajax/{historiaclinica_id}", name="diagnosticos_historia_clinica_new_ajax", methods={"POST"})
*/
public function new_ajax(Request $request, Cie10Repository $cie10Repository, HistoriaClinicaRepository $historiaClinicaRepository, $historiaclinica_id): Response
{
$ip = $request->getClientIp();
$user = $this->security->getUser();
$diagnosticosHistoriaClinica = new DiagnosticosHistoriaClinica();
$form_dx = $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
$form_dx->handleRequest($request);
if ($form_dx->isSubmitted() && $form_dx->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$cie10_id = $form_dx->get('cie10_id')->getData();
$tipo = $form_dx->get('tipo')->getData();
$cie10 = $cie10Repository->find($cie10_id);
$hc = $historiaClinicaRepository->find($historiaclinica_id);
$diagnosticosHistoriaClinica->setTipo($tipo);
$diagnosticosHistoriaClinica->setCie10($cie10);
$diagnosticosHistoriaClinica->setHistoriaClinica($hc);
$diagnosticosHistoriaClinica->setIpCrea($ip);
$diagnosticosHistoriaClinica->setIpModifica($ip);
$diagnosticosHistoriaClinica->setUserCrea($user->getId());
$diagnosticosHistoriaClinica->setUserModifica($user->getId());
$entityManager->persist($diagnosticosHistoriaClinica);
$entityManager->flush();
return $this->json(['estado' => 'ok']);
}
return $this->json(['estado' => 'error']);
}
/**
* @Route("/{id}", name="diagnosticos_historia_clinica_show", methods={"GET"})
*/
public function show(DiagnosticosHistoriaClinica $diagnosticosHistoriaClinica): Response
{
return $this->render('diagnosticos_historia_clinica/show.html.twig', [
'diagnosticos_historia_clinica' => $diagnosticosHistoriaClinica,
]);
}
/**
* @Route("/{id}/edit", name="diagnosticos_historia_clinica_edit", methods={"GET","POST"})
*/
public function edit(Request $request, DiagnosticosHistoriaClinica $diagnosticosHistoriaClinica): Response
{
$form = $this->createForm(DiagnosticosHistoriaClinicaType::class, $diagnosticosHistoriaClinica);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('diagnosticos_historia_clinica_index');
}
return $this->render('diagnosticos_historia_clinica/edit.html.twig', [
'diagnosticos_historia_clinica' => $diagnosticosHistoriaClinica,
'form' => $form->createView(),
]);
}
/**
* @Route("/{id}", name="diagnosticos_historia_clinica_delete", methods={"DELETE"})
*/
public function delete(Request $request, DiagnosticosHistoriaClinica $diagnosticosHistoriaClinica): Response
{
if ($this->isCsrfTokenValid('delete'.$diagnosticosHistoriaClinica->getId(), $request->request->get('_token'))) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($diagnosticosHistoriaClinica);
$entityManager->flush();
}
return $this->redirectToRoute('diagnosticos_historia_clinica_index');
}
/**
* @Route("/eliminar/{id}", name="diagnosticos_historia_clinica_delete_ajax", methods={"GET"})
*/
public function eliminar(Request $request, DiagnosticosHistoriaClinica $diagnosticosHistoriaClinica): Response
{
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($diagnosticosHistoriaClinica);
$entityManager->flush();
return $this->json(['estado' => 'delete']);
}
}