<?php

// Creado: L I Juan Pablo Sánchez Bracamontes, 16/12/2016. Se crea el controlador para contener todos los formularios referentes a la administración de catálogos
namespace App\Http\Controllers\Catalogos;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\Libraries\ejLib;
use Illuminate\Routing\Redirector;
Use Session;
Use Redirect;
Use SimpleXMLElement;

class FormulariosController extends Controller{


	public function getPrueba(){ // 30 Mar 2017 - Método para pruebas con integración por AJAX
		echo $_POST['var4'];

		?>
		<table border="1px"><tr>
			<?php foreach ($_POST as $fila) echo "<td>". $fila . "</td>"; ?>
		</tr></table>
		<?php

	}

	// 19 Dic 2016 . Juan Pablo Sánchez Bracamontes
	private function hayCuentaActiva(){
		if(isset($_SESSION['usuario']) || isset($_SESSION['operador']))
			return 1;
		return 0;
	}

	// 19 Dic 2016 . Juan Pablo Sánchez Bracamontes
	private function esCuentaRoot(){
		if( isset($_SESSION['usuario']) ){
			$var = ejLib::getInstance();
	    	$usuario = $_SESSION['usuario'];
			$decoded = $var->desencriptar_AES($usuario['tusuario'], $usuario['x']);
			if(rtrim($decoded) == "Root") return 1;
			else return null;
		}else
			return 0;
	}

	// 19 Dic 2016 . Juan Pablo Sánchez Bracamontes
	private function esCuentaAdmin(){
		if( isset($_SESSION['usuario']) ){
			$var = ejLib::getInstance();
	    	$usuario = $_SESSION['usuario'];
			$decoded = $var->desencriptar_AES($usuario['tusuario'], $usuario['x']);
			if(rtrim($decoded) == "Admin") return 1;
			else return null;
		}else
			return 0;
	}

	// 19 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function Especialidades(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return view('catalogos.listarEspecialidades');
    	if(!$this->hayCuentaActiva() || $this->esCuentaRoot()==0 )
	    	return redirect('logout');
	}

	// 20 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function addEspecialidades(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return view('catalogos.mostrarAddEspecialidad');
    	if(!$this->hayCuentaActiva())
	    	return redirect('login');
	}

	// 20 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function addRamas(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0){
			$var = ejLib::getInstance();
			return view('catalogos.mostrarAddRama');
    	}if(!$this->hayCuentaActiva())
	    	return redirect('login');
	}

	// 20 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function getLstEspecialidades(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('catalogos.mostrarLstEspecialidades');

	}

	// 20 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function mostrarup_Especialidad(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return view('catalogos.mostrarUp_Especialidad');
    	if(!$this->hayCuentaActiva())
	    	return redirect('login');
	}


	// 22 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function ModulosDeArchivo(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.ModulosDeArchivo');
    	if(!$this->hayCuentaActiva() || $this->esCuentaRoot()==0 )
	    	return redirect('login');


	}

	// 22 Dic 2016 . Juan Pablo Sánchez Bracamontes
    public function getLstModulosDeArchivo(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.mostrarLstModulosDeArchivo');
	}


	// 09 Ene 2017 . Juan Pablo Sánchez Bracamontes
    public function mostrarAddModulos(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.mostrarAddModulos');
	}

	// 01 Feb 2017 . Juan Pablo Sánchez Bracamontes
    public function mostrarAddConsultorios(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.mostrarAddConsultorios');
	}


	// 01 Feb 2017 . Juan Pablo Sáncez Bracamontes
	public function Consultorios(){
		session_start();
		if(!$this->hayCuentaActiva() )
			return redirect('/');

		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.Consultorios');

	}

	// 01 Feb 2017 . Juan Pablo Sánchez Bracamontes
    public function getLstConsultorios(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('catalogos.mostrarLstConsultorios');

	}

	// 01 Feb 2017 . Juan Pablo Sánchez Bracamontes
    public function mostrarEditConsultorios(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('catalogos.mostrarEditConsultorios');

	}


	// 06 Jul 2017 . Juan Pablo Sánchez Bracamontes
	public function mostrarPruebaSencilla(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('catalogos.mostrarPruebaSencilla');

	}

	// 12 Mar 2018 . Juan Pablo Sánchez Bracamontes .Metodo para visualizar la vista principal para la administración del catálogo Estatus de Referencias
	public function indexEstatusReferencia(){
        session_start();
        if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) )
            return view('Catalogos.EstatusReferencia.mostrarEstatusReferencia');
        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0)
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
        return view('login.index', compact('response_error'));
    }


	 //13 Mar 2018 . Víctor Manuel González Ventura. Metodo para visualizar el formulario para agregar nuevo Estatus de referencia
	public function mostraraddEstatusReferencia(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas	

		if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) )
            return view('catalogos.EstatusReferencia.mostrarAddEstatusReferencia');
        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0)
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
        return view('login.index', compact('response_error'));
    }

	public function mostrarEditEstatusReferencia(){
		session_start();
		if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) )
            return view('catalogos.EstatusReferencia.mostrarEditEstatusReferencia');
        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0)
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
        return view('login.index', compact('response_error'));
	}

	// 10 abril 2018 . Juan Pablo Sánchez Bracamontes .Metodo para visualizar la vista principal para la administración del catálogo CentrosDeSaludRePorUMED
	public function indexCentrosDeSaludRePorUMED()
    {
        session_start();
        if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) || (!$this->esCuentaAdmin() == null && $this->esCuentaAdmin() > 0))
            return view('Catalogos.CentrosDeSaludRePorUMED.mostrarCSRefPorUMED');
        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0)
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
        return view('login.index', compact('response_error'));
    }

	public function mostraradd_ConfCSRefPorUME(){
					session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
					return view('catalogos.CentrosDeSaludRePorUMED.mostrarAddNuevaReferenciaCS');
		    }

	// 16 Abril 2018 . Víctor Manuel González Ventura. Metodo para visualizar el formulario para actualizar referenciacion a centro de salud
	public function mostrarActualizacionReferenciacionCentroDeSalud(){
								session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
								return view('catalogos.CentrosDeSaludRePorUMED.mostrarActualizarReferenciacionaCentrodeSalud');
					    }


// 15 oct 2018 . JAGN .Metodo para visualizar la vista principal para la administración del catálogo servicios para admision
// 
	public function indexCatServiciosAdmision()
    {
        session_start();
        if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) || (!$this->esCuentaAdmin() == null && $this->esCuentaAdmin() > 0))
            return view('Catalogos.AdmisionServicios.mostrarServicios');
        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0)
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
        return view('login.index', compact('response_error'));
    }


// 15 oct 2018 . JAGN .Metodo para visualizar la vista principal para la administración del catálogo tipos de servicio para admision
// 
	public function indexCatTipoServiciosAdmision()
    {
        session_start();
        if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) || (!$this->esCuentaAdmin() == null && $this->esCuentaAdmin() > 0))
            return view('Catalogos.AdmisionTiposServicios.mostrarTiposServicios');
        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0)
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
        return view('login.index', compact('response_error'));
    }

// 16 oct 2018 . AGN .Metodo para visualizar la vista para agregar nuevos tipos de servicios para admision
// 
public function addTiposServicios(){
					session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
					return view('catalogos.AdmisionTiposServicios.addTiposServicios');
		    }



// 16 oct 2018 . AGN. Metodo para visualizar el formulario para actualizar LOS TIPOS DE SERVICIOS EN ADMISION
	public function up_EditarTiposServicios(){
								session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
								return view('catalogos.AdmisionTiposServicios.ActualizarTiposServicios');
					    }



// 29 oct 2018 . AGN .Metodo para visualizar la vista para agregar nuevos servicios para admision
// 
public function add_ServiciosAdmision(){
					session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
					return view('catalogos.AdmisionServicios.addServicios');
		    }

// 30 oct 2018 . AGN. Metodo para visualizar el formulario para actualizar LOS TIPOS DE SERVICIOS EN ADMISION
	public function up_EditarServicios(){
								session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
								return view('catalogos.AdmisionServicios.ActualizarServicios');
					    }

// 01 Jun 2021 . Janeth C
    public function getLstAgendaUrgencias(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.mostrarLstAgendaUrgencias');
	}

	 public function up_camas_activas(){
        session_start();
        if ((!$this->esCuentaRoot() == null && $this->esCuentaRoot() > 0) || (!$this->esCuentaAdmin() == null && $this->esCuentaAdmin() > 0)) {
            return view('Admision.adminCamasHosp');
        }

        if (!$this->hayCuentaActiva() || $this->esCuentaRoot() == 0) {
            $response_error = "No dispone de suficientes privilegios de acceso para realizar esta acción";
            return view('login.index', compact('response_error'));
        }
    }

// 14 Dic 2021 Janeth C.

	public function tipos_notasMedicas(){
		session_start();
		if(!$this->hayCuentaActiva() )
			return redirect('/');

		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.tipos_notasMedicas');



	}  

	// 04 Ene 2022  Janeth C.
    public function getLstTiposNotasMedicas(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('catalogos.mostrarLstTiposNotas');

	}  

	// 05 Ene 2022 Janeth C. 
	 public function mostrarEditTipoNota(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('catalogos.mostrarEditTipoNota');

	}

	// 05 Abr 2022 Janeth C. 
	 public function consultar_catalogo_diagnosticos(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		
		return view('catalogos.mostrarDiagnosticosAutorizadosDGIS');
	}

	// 14 Nov 2022 Janeth C.
	public function mostrarAddTipoNotaMedica(){
		session_start();
		if(!$this->hayCuentaActiva() )
			return redirect('/');

		if(  (!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0) ||  (!$this->esCuentaAdmin()==null && $this->esCuentaAdmin()>0)  )
			return view('catalogos.mostrarAddTipoNotaMedica');
	}


		// 20 Jun 2024 Janeth C. 
	 public function consultar_catalogo_diagnosticos_sis(){
		session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		
		return view('catalogos.mostrarDiagnosticosSIS');
	}  


	 

 }