<?php

// Creado: L I Juan Pablo Sánchez Bracamontes, 24/May/2018. Se crea el controlador para contener todos los formularios referentes a la administración de consulta externa
namespace App\Http\Controllers\ConsultaExterna;

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;
use mikehaertl\pdftk\Pdf;
use mikehaertl\pdftk\XfdfFile;

//////////////////////////////////////////////////////////////////////
// https://github.com/dompdf/dompdf
use Dompdf\Dompdf;
use Dompdf\Options;
//////////////////////////////////////////////////////////////////////

class FormulariosController extends Controller{

	// 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;
	}

	// 24 May 2018 . Juan Pablo Sánchez Bracamontes . SOLICITUD DE REFERENCIA POR PARTE DE LOS CENTROS DE SASLUD
	public function solicitaReferencia(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

    	if($this->hayCuentaActiva()){
	    	$var = ejLib::getInstance();
			$soapclient = $var->getWs();
			$wsClave = $var->get_wsClave();

			$usuario = $_SESSION['operador'];
		    $id_doc = $var->desencriptar_AES($usuario['id_doc'], $usuario['x']);

			$CLUES_Origen = '';
			$CLUES_Destino = '';
			if(isset($_POST['CLUES_Origen']) && trim($_POST['CLUES_Origen']) != '')$CLUES_Origen = trim($_POST['CLUES_Origen']);
			if(isset($_POST['CLUES_Destino']) && trim($_POST['CLUES_Destino']) != '')$CLUES_Destino = trim($_POST['CLUES_Destino']);


			if($CLUES_Origen === ''){
				$obj = $soapclient->ConsultaExterna_getLstPersonalDeReferencia($id_doc, '', '1', '',$wsClave);
				$Modulos = new SimpleXMLElement(utf8_encode($obj));

				$nReg = count($Modulos);
				if(isset($Modulos->respuesta) ){
					$CLUES_Origen= trim($Modulos->respuesta[0]->clues_origen);
					$CLUES_Destino= trim($Modulos->respuesta[0]->clues);
				}

				if($nReg==1 && $CLUES_Origen != '')					
					return view('ConsultaExterna.Referencias.mostrarSolicitudReferencia', compact('CLUES_Origen'), compact('CLUES_Destino'));

				if($nReg>1){
					//return "Se requiere renderizar otra vista que muestre los accesos del usuario...";
					return view('ConsultaExterna.Referencias.mostrarLstBuzonDeReferencias', compact('Modulos'));
				}
				else
					return "Para el usuario actual aún no han registrado módulos de referencia...";
			}else
				return view('ConsultaExterna.Referencias.mostrarSolicitudReferencia', compact('CLUES_Origen'), compact('CLUES_Destino'));

		}
	}

	// 24 May 2018 . Juan Pablo Sánchez Bracamontes . BUZÓN DE REFERENCIA PARA PERSONAL DEL HOSPITAL
	public function buzonReferenciaHosp(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

    	/* if($this->hayCuentaActiva()){
	    	$var = ejLib::getInstance();
			return view('ConsultaExterna.Referencias.mostrarBuzonReferenciaHosp');
		}*/

		if($this->hayCuentaActiva()){
	    	$var = ejLib::getInstance();
			$soapclient = $var->getWs();
			$wsClave = $var->get_wsClave();

			$usuario = $_SESSION['operador'];
		    $id_doc = $var->desencriptar_AES($usuario['id_doc'], $usuario['x']);

			$CLUES_Destino = '';
			if(isset($_POST['CLUES_Destino']) && trim($_POST['CLUES_Destino']) != '')$CLUES_Destino = trim($_POST['CLUES_Destino']);
			$CLUES_Origen = '';
			if(isset($_POST['CLUES_Origen']) && trim($_POST['CLUES_Origen']) != '')$CLUES_Origen = trim($_POST['CLUES_Origen']);


			if($CLUES_Destino === ''){
				$obj = $soapclient->ConsultaExterna_getLstPersonalDeReferencia($id_doc, '', '0', '',$wsClave);
				$Modulos = new SimpleXMLElement(utf8_encode($obj));

				$nReg = count($Modulos);
				if(isset($Modulos->respuesta) )
					$CLUES_Destino= trim($Modulos->respuesta[0]->clues);//$CLUES_Destino= trim($Modulos->respuesta[0]->clues_origen);

				if($nReg==1 && $CLUES_Destino != '')
					return view('ConsultaExterna.Referencias.mostrarBuzonReferenciaHosp', compact('CLUES_Destino'), compact('CLUES_Origen'));

				if($nReg>1){
					//return "Se requiere renderizar otra vista que muestre los accesos del usuario...";
					return view('ConsultaExterna.Referencias.mostrarLstBuzonDeReferenciasHosp', compact('Modulos'));
				}
				else
					return "Para el usuario actual aún no han registrado buzones de atención de referencias...";
			}else
				return view('ConsultaExterna.Referencias.mostrarBuzonReferenciaHosp', compact('CLUES_Destino'), compact('CLUES_Origen'));

		}
	}

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

	// 11 Jul 2018 . Juan Pablo Sánchez Bracamontes
    public function mostrarUpSolicitudReferencia(){
    	session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		return view('ConsultaExterna.Referencias.mostrarUpSolicitudReferencia');
	}

	// 01 Octubre 2018 . Janeth Maribel Cuevas Montelón
    public function referencia_pdf(){
    	session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas

    	//Metodo encargado de visualizar el pdf en un formulario Modal.
		$view =  \View::make('ConsultaExterna.Referencias.referencia_pdf')->render();
        $pdf = \App::make('dompdf.wrapper');
        $pdf->loadHTML(utf8_encode($view));
        return $pdf->stream('referencia');

	}

	// 10 Octubre 2018 . Janeth Maribel Cuevas Montelón
	// Método que se encarga de llamar al iframe para invocar la vista y enviar parametros por get
	public function impime_referencia_pdf() {
	$id_solicitud = '';
    $clues_origen = '';
    $editable = '';
    //Se reciben las variables por POST, que fueron enviadas desde viewImprimirReferencia
	if(isset($_POST['id_solicitud']))
      $id_solicitud = $_POST['id_solicitud'];
    if(isset($_POST['clues_origen']))
      $clues_origen = $_POST['clues_origen'];
    if(isset($_POST['editable']))
      $editable = $_POST['editable'];
		?>
		

			<iframe src="referencia/referencia_pdf?id_solicitud=<?php echo $id_solicitud; ?>&clues_origen=<?php echo $clues_origen; ?>&editable=<?php echo $editable; ?>" id="ifrReferencia" name="ifrReferencia" height="90%" width="90%">
		<?php



	}




	// 06 ene 2019 agn
    public function cargaarchivoreferencia()
    {
    	session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

    	if($this->hayCuentaActiva()){
	    	$var = ejLib::getInstance();
			$soapclient = $var->getWs();
			$wsClave = $var->get_wsClave();

			$usuario = $_SESSION['operador'];
		    $id_doc = $var->desencriptar_AES($usuario['id_doc'], $usuario['x']);

			$CLUES_Origen = '';

			return view('ConsultaExterna.Referencias.cargaarchivoreferencia', compact('CLUES_Origen'));

		}
	}


	// 16 Ene 19 . Janeth Maribel Cuevas Montelón
	// Método que se encarga de llamar al iframe para invocar la vista y enviar parametros por get
	public function cancelar_SolicitudReferencia() {
		session_start(); // El formulario requiere el uso de variables de sesion
		$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();
		$id_solicitud='';
		$clues_origen='';
		$editable = '';
		//Se reciben las variables por POST, que fueron enviadas desde cancelarReferencia
        if(isset($_POST['id_solicitud']))$id_solicitud=$_POST['id_solicitud'];
        if(isset($_POST['clues_origen']))$clues_origen=$_POST['clues_origen'];
        if(isset($_POST['editable']))$editable = $_POST['editable'];


		return view('ConsultaExterna.Referencias.cancelar_SolicitudReferencia');

		?>
		<?php



	}


	// 23-ene-2019 . AGN . 
	// SOLICITUD CARGA MASIVA POR PARTE DE LOS CENTROS DE SASLUD
	public function solicitaCargaMasivaReferencia(){ 
		

		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');



    	if($this->hayCuentaActiva())
    	{
	    	
	    	$var = ejLib::getInstance();
			$soapclient = $var->getWs();
			$wsClave = $var->get_wsClave();

			$usuario = $_SESSION['operador'];		    
		    $id_doc = $var->desencriptar_AES($usuario['id_doc'], $usuario['x']);

			$CLUES_Origen = '';

			if(isset($_POST['CLUES_Origen']) && trim($_POST['CLUES_Origen']) != '')
				$CLUES_Origen = trim($_POST['CLUES_Origen']);

			

			if($CLUES_Origen === '')
			{
				
				$obj = $soapclient->ConsultaExterna_getLstPersonalDeReferencia($id_doc, '', '1', '',$wsClave);
				$Modulos = new SimpleXMLElement(utf8_encode($obj));
				

				$nReg = count($Modulos);
				if(isset($Modulos->respuesta) )
					$CLUES_Origen= trim($Modulos->respuesta[0]->clues_origen);
				
				if($nReg==1 && $CLUES_Origen != '')
				{					
					return view('ConsultaExterna.Referencias.cargaarchivoreferencia', compact('CLUES_Origen'));
				}

					//return view('ConsultaExterna.Referencias.mostrarSolicitudReferencia', compact('CLUES_Origen'));


				$agn  = 'prueba';

				if($nReg>1){

					//return "Se requiere renderizar otra vista que muestre los accesos del usuario...";
					return view('ConsultaExterna.Referencias.mostrarLstBuzonCargaMasivaDeReferencias', compact('Modulos'));
				}
				else
					return "Para el usuario actual aún no han registrado módulos de referencia...";
			}else
				{

				return view('ConsultaExterna.Referencias.cargaarchivoreferencia', compact('CLUES_Origen'));

				//return view('ConsultaExterna.Referencias.mostrarLstBuzonCargaMasivaDeReferencias', compact('CLUES_Origen'));

				}
		
		}
	}


	public function BuscarPacienteReferencias()
    {
	    session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
		$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();
		$id_solicitud='';
		$clues_origen='';
		$nombre_paciente ='';
		$primer_ap='';
		$segundo_ap='';


		if(isset($_POST['id_solicitud']))$id_solicitud = $_POST['id_solicitud'];
	    if(isset($_POST['clues_origen']))$clues_origen = $_POST['clues_origen'];

		$data = $soapclient->ConsultaExterna_get_referencia($id_solicitud, $clues_origen,$wsClave);
		$data = new SimpleXMLElement(utf8_encode($data));
		
		$result = ['paciente' => (object)$data->respuesta];
	 //  print_r($result);
		return view('buscarPaciente.busquedaPaciente')->with($result)->with('referencias', '1');;
		
		//return view('archivo.searchPaciente')->with($result);
		
    }

	// 13 Feb 2019 LI Juan Pablo Sánchez Bracamontes
    public function Agenda_solicitarCita(){    	
    	session_start(); // El formulario requiere el uso de variables de sesion
    	//$clave_pac = '123456'; $centro_sal = '1'; $id_solicitud = '';
    	
    	$clave_pac = ''; $centro_sal = ''; $id_solicitud = ''; $opcNuevaCitaUrg='';

		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		//if(!(isset($_POST['clave_pac'])) || !(isset($_POST['centro_sal']))) return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

    	if($this->hayCuentaActiva()){
    		// $clave_pac = trim($_POST['clave_pac']); $centro_sal = trim($_POST['centro_sal']); // Al remover los comentarios del if inmediato anterior debe descomentarse esta línea
    		   		

    		if(isset($_GET['clave_pac']))$clave_pac = $_GET['clave_pac'];
			if(isset($_GET['centro_sal']))$centro_sal = $_GET['centro_sal'];
			if(isset($_GET['id_solicitud']))$id_solicitud = trim($_GET['id_solicitud']);

    		if(isset($_POST['clave_pac']))$clave_pac = $_POST['clave_pac'];
			if(isset($_POST['centro_sal']))$centro_sal = $_POST['centro_sal'];
			if(isset($_POST['id_solicitud']))$id_solicitud = trim($_POST['id_solicitud']);

			if(isset($_POST['id_solicitud']))$id_solicitud = trim($_POST['id_solicitud']);
			if(isset($_POST['opcConsultarCitaUrg']))$opcNuevaCitaUrg = trim($_POST['opcConsultarCitaUrg']);
		//	print_r($opcNuevaCitaUrg); die();
			
			if($opcNuevaCitaUrg==1 ){ 
					
				
					return view('Urgencias.Agenda.solicitarCitaRecepcion'); } 
			else{
		
					$solicitud = ["clave_pac" => $clave_pac, "centro_sal" => $centro_sal, "id_solicitud" => $id_solicitud,];
					return view('ConsultaExterna.Agenda.solicitarCita', compact('solicitud'));
				}
			
		}else{
			return redirect('login');
		}
	}

	// 27 Jun 2019 LI Juan Pablo Sánchez Bracamontes
    public function Agenda_getDetalleCita(){    	
    	session_start(); // El formulario requiere el uso de variables de sesion    	
    	$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();
    	$id_cita = ''; $centro_sal = '';
    	
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if(!(isset($_POST['id_cita'])) || !(isset($_POST['centro_sal']))) return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

		if(isset($_POST['id_cita']))$id_cita = $_POST['id_cita'];
		if(isset($_POST['centro_sal']))$centro_sal = $_POST['centro_sal'];

		//echo "$id_cita $centro_sal";

		$data = $soapclient->ConsultaExterna_getDetalleCita_Agenda($id_cita, $centro_sal,$wsClave);
		$data = new SimpleXMLElement(utf8_encode($data));


    	if($this->hayCuentaActiva()){    		
			$solicitud = $data->respuesta;
			return view('ConsultaExterna.Agenda.getDetalleCita', compact('solicitud'));
		}else{
			return redirect('login');
		}
	}

	// 06 Feb 2020 LI Juan Pablo Sánchez Bracamontes
    public function Consulta_revisarNotasBase(){    	
    	session_start(); // El formulario requiere el uso de variables de sesion
    	   		

		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

    	if($this->hayCuentaActiva()){
    		    					
			return view('ConsultaExterna.Consulta.revisarNotasBase');
		}else{
			return redirect('login');
		}
	}

	// 06 Feb 2020 LI Juan Pablo Sánchez Bracamontes
    public function Consulta_revisarNotas(){    	
    	session_start(); // El formulario requiere el uso de variables de sesion    	
    	$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();
    	   		

		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if( !(isset($_POST['clave_pac'])) ) return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

    	if($this->hayCuentaActiva()){

    		$data = $soapclient->Archivo_getLstPacientesFull('', $_POST['clave_pac'], $wsClave);
			$data = new SimpleXMLElement(utf8_encode($data));
			$paciente = $data->respuesta;
    		
			return view('ConsultaExterna.Consulta.revisarNotas', compact('paciente'));
		}else{
			return redirect('login');
		}
	}

	// 07 Feb 2020 LI Juan Pablo Sánchez Bracamontes
    public function Consulta_revisarNotas_NU_pdf(){
    	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 redirect('login');

		if(!isset($_GET['folio']) || !isset($_GET['centro_sal']) )
			return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

		if($this->hayCuentaActiva()){

//			return view('ConsultaExterna.Consulta.revisarNotas_NU_pdf');

 // descomentar cuando esté concluido el diseño del form
    		//Metodo encargado de visualizar el pdf en un formulario Modal.
			$view =  \View::make('ConsultaExterna.Consulta.revisarNotas_NU_pdf')->render();
	        $pdf = \App::make('dompdf.wrapper');
	        $pdf->loadHTML(utf8_encode($view));
	        return $pdf->stream('referencia');
	        

        }else{
			return redirect('login');
		}

	}

	// 11 Febrero 20200 LI Juan Pablo Sánchez Bracamontes
	// Método que se encarga de llamar al iframe para invocar la vista y enviar parametros por get
	public function impime_Notas_NU_pdf() {
	$folio = '';
    $centro_sal = '';    
    //Se reciben las variables por POST, que fueron enviadas desde viewImprimirReferencia
	if(isset($_POST['folio']))
      $folio = $_POST['folio'];
    if(isset($_POST['centro_sal']))
      $centro_sal = $_POST['centro_sal'];    
		?>

      <div class="modal-header">
        <h5 style="display: inline-block; font-size: 18px; margin: 0; line-height: 1; font-family: 'Source Sans Pro',sans-serif; font-weight: 500;">VISUALIZADOR DE NOTAS MÉDICAS</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
			<iframe src="Consulta_revisarNotas_imprime_pdf?folio=<?php echo $folio; ?>&centro_sal=<?php echo $centro_sal; ?>" id="ifrNota" name="ifrNota" height="90%" width="90%">
		<?php



	}



	// 25 Feb 2020 LI Juan Pablo Sánchez Bracamontes
    public function Consulta_revisarEspacioAgenda_pdf(){
    	session_start();

    	if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if(!isset($_GET['id_cita']) || !isset($_GET['centro_sal']) )
			return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

		if($this->hayCuentaActiva()){

//			return view('ConsultaExterna.Consulta.revisarEspacioAgenda_pdf');

    		//Metodo encargado de visualizar el pdf en un formulario Modal.
			$view =  \View::make('ConsultaExterna.Consulta.revisarEspacioAgenda_pdf')->render();
	        $pdf = \App::make('dompdf.wrapper');
	        $pdf->loadHTML(utf8_encode($view));
	        return $pdf->stream('referencia');

        }else{
			return redirect('login');
		}

	}


	// 25 Febrero 2020 LI Juan Pablo Sánchez Bracamontes
	// Método que se encarga de llamar al iframe para invocar la vista y enviar parametros por get
	public function impime_EspacioAgenda_pdf() {
		$id_cita = '';
    $centro_sal = '';  
    $referencia = '';       
    //Se reciben las variables por POST, que fueron enviadas desde viewImprimirReferencia
	if(isset($_POST['id_cita']))
      $id_cita = $_POST['id_cita'];
    if(isset($_POST['centro_sal']))
      $centro_sal = $_POST['centro_sal'];  
     if(isset($_POST['referencia']))
      $referencia = $_POST['referencia'];       
		?>

      <div class="modal-header">
        <h5 style="display: inline-block; font-size: 18px; margin: 0; line-height: 1; font-family: 'Source Sans Pro',sans-serif; font-weight: 500;">VISUALIZADOR DE ESPACIOS RESERVADOS DE LA AGENDA</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
			<iframe src="Consulta_revisarEspacioAgenda_imprime_pdf?id_cita=<?php echo $id_cita; ?>&centro_sal=<?php echo $centro_sal; ?>&referencia=<?php echo $referencia; ?>" id="ifrAgenda" name="ifrAgenda" height="90%" width="90%">
		<?php



	}

	// 25 Febrero 2020 LI Juan Pablo Sánchez Bracamontes
	// Método que se encarga de imprimir un modal con los
	public function comparar_PacienteConReferencia() {
		session_start();
		$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();

    	if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if(!isset($_POST['clave_pac']) || !isset($_POST['id_solicitud']) || !isset($_POST['clues_origen']) || !isset($_POST['centro_sal']) )
			return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";
			$data = $soapclient->Archivo_getLstPacientesFull('', $_POST['clave_pac'], $wsClave);
			$data = new SimpleXMLElement(utf8_encode($data));
			$paciente = $data->respuesta;
		if($this->hayCuentaActiva()){

			return view('ConsultaExterna.Referencias.comparar_PacienteConReferencia', compact('paciente'));
        }else{
			return redirect('login');
		}

	}

	// 08 Septiembre 2020 Daniel Orozco
	// Método que se encarga de imprimir un modal con la Hoja Frontal
    public function Consulta_revisarHojaFrontal_pdf(){
    	session_start();

    	if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

	 

		if($this->hayCuentaActiva()){

//			return view('ConsultaExterna.Consulta.revisarEspacioAgenda_pdf');

    		//Metodo encargado de visualizar el pdf en un formulario Modal.
			$view =  \View::make('ConsultaExterna.Consulta.revisarHojaFrontal_pdf')->render();
	        $pdf = \App::make('dompdf.wrapper');
	        $pdf->loadHTML(utf8_encode($view));
	        return $pdf->stream('HOJA_FRONTAL.PDF');

        }else{
			return redirect('login');
		}

	}

	// 08 Septiembre 2020 Daniel Orozco
	// Método que se encarga de imprimir un modal con la Hoja Frontal
	public function imprime_HojaFrontal_pdf() {


	session_start(); // El formulario requiere el uso de variables de sesion    	
    	$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();
    	   		

		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if( !(isset($_POST['clave_pac'])) ) return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

    	if($this->hayCuentaActiva()){

    		$data = $soapclient->Archivo_getLstPacientesFull('', $_POST['clave_pac'], $wsClave);
			$data = new SimpleXMLElement(utf8_encode($data));
			$paciente = $data->respuesta;
    			//echo $_POST['clave_pac'];
				//print_r($paciente);
    			?>
    			<div class="modal-header">
        <h5 style="display: inline-block; font-size: 18px; margin: 0; line-height: 1; font-family: 'Source Sans Pro',sans-serif; font-weight: 500;">VISUALIZADOR DE HOJA FRONTAL</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>

       <iframe src="Consulta_revisarHojaFrontal_pdf?id_paciente=<?php echo $_POST['clave_pac']; ?>" id="ifrHojaF" name="ifrHojaF" height="90%" width="90%"> 
		<?php

			 
		}else{
			return redirect('login');
		}

    
	}

	// 17 May 21 Janeth C. Método para visualizar e imprimir las indicaciones de la nota médica
	public function impime_indicaciones_pdf() {
	$folio = '';
    $centro_sal = '';    
    //Se reciben las variables por POST, que fueron enviadas desde viewImprimirReferencia
	if(isset($_POST['folio']))
      $folio = $_POST['folio'];
    if(isset($_POST['centro_sal']))
      $centro_sal = $_POST['centro_sal'];    
		?>

      <div class="modal-header">
        <h5 style="display: inline-block; font-size: 18px; margin: 0; line-height: 1; font-family: 'Source Sans Pro',sans-serif; font-weight: 500;">VISUALIZADOR DE INDICACIONES MÉDICAS</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
			<iframe src="Consulta_verIndicaciones_imprime_pdf?folio=<?php echo $folio; ?>&centro_sal=<?php echo $centro_sal; ?>" id="ifrNota" name="ifrNota" height="90%" width="90%">
		<?php



	} 




    public function Consulta_verIndicaciones_NU_pdf(){
    	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 redirect('login');

		if(!isset($_GET['folio']) || !isset($_GET['centro_sal']) )
			return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

		if($this->hayCuentaActiva()){

//			return view('ConsultaExterna.Consulta.revisarNotas_NU_pdf');

 // descomentar cuando esté concluido el diseño del form
    		//Metodo encargado de visualizar el pdf en un formulario Modal.
			$view =  \View::make('ConsultaExterna.Consulta.revisarIndicaciones_pdf')->render();
	        $pdf = \App::make('dompdf.wrapper');
	        $pdf->loadHTML(utf8_encode($view));
	        return $pdf->stream('indicaciones');
	        

        }else{
			return redirect('login');
		}

	} 





	// 12 Mayo 2023 . Juan Pablo Sánchez Bracamontes
    public function solicitudes_referencia_pdf(){
    	session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas

    	
    	//Metodo encargado de visualizar el pdf en un formulario Modal.
		$view =  \View::make('ConsultaExterna.Referencias.solicitudes_referencia_pdf')->render();
        $pdf = \App::make('dompdf.wrapper');
        $pdf->setPaper('A4', 'landscape');
        $pdf->loadHTML(utf8_encode($view));
        return $pdf->stream('referencia.pdf');
        
	}

	// 12 Mayo 2023 . Juan Pablo Sánchez Bracamontes
	// Método que se encarga de llamar al iframe para invocar la vista y enviar parametros por get
	public function impime_solicitudes_referencia_pdf() {
		?>
			<iframe src="referencia/solicitudes_referencia_pdf?CLUES=<?= (isset($_POST['CLUES']) ? $_POST['CLUES'] : '') ?>&CLUES_solicitante=<?= (isset($_POST['CLUES_solicitante']) ? $_POST['CLUES_solicitante'] : '') ?>&status=<?= $_POST['status']?>&fecha_inicio=<?= $_POST['fecha_inicio']?>&fecha_termino=<?= $_POST['fecha_termino']?>&tipo_solicitud=<?= $_POST['tipo_solicitud']?>&leido=<?= $_POST['leido']?>&especialidad=<?= $_POST['especialidad']?>&tipo_filtro=<?= $_POST['tipo_filtro']?>&no_solicitud=<?= $_POST['no_solicitud']?>&sinobservaciones=<?= $_POST['sinobservaciones']?>&nombre=<?= $_POST['nombre']?>" id="ifrSolicitudes_Referencia" name="ifrSolicitudes_Referencia" height="90%" width="90%">
		<?php

	}
	


	public function nuevaSolicitudReferencia() {
		session_start();

    	if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if(!isset($_POST['nom_Centro_Sal']) || !isset($_POST['CLUES_solicitante']) )
			return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";

		if($this->hayCuentaActiva()){

			return view('ConsultaExterna.Referencias.mostrarNuevaSolicitudReferencia');
        }else{
			return redirect('login');
		}

	}	

	public function impimir_CitaAgendada() { // Jun 2023
		$id_cita = '';
    $centro_sal = '';
    $referencia = '';    
    //Se reciben las variables por POST, que fueron enviadas desde viewImprimirReferencia
		if(isset($_POST['id_cita']))
      $id_cita = $_POST['id_cita'];
    if(isset($_POST['centro_sal']))
      $centro_sal = $_POST['centro_sal'];
    if(isset($_POST['referencia']))
      $referencia = $_POST['referencia'];         
		?>

      <div class="modal-header">
        <h5 style="display: inline-block; font-size: 18px; margin: 0; line-height: 1; font-family: 'Source Sans Pro',sans-serif; font-weight: 500;">CITA DE REFERENCIA AGENDADA</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
			<iframe src="Consulta_revisarEspacioAgenda_imprime_pdf?id_cita=<?php echo $id_cita; ?>&centro_sal=<?php echo $centro_sal; ?>&referencia=<?php echo $referencia; ?>" id="ifrAgenda" name="ifrAgenda" height="90%" width="90%">
		<?php



	}

		// 04 Octubre 2023 Janeth C. 
    public function mostrarInfoPaciente(){
    	session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas
			return view('ConsultaExterna.Consulta.revisarNotasBase');
	}

		// 11 Dic 2023 . Janeth
    public function solicitud_laboratorio_pdf(){
    	session_start(); // Se aloja en los métodos por que son estos los que mandan llamar a las vistas

    	
    	//Metodo encargado de visualizar el pdf en un formulario Modal.
		$view =  \View::make('ConsultaExterna.Consulta.solicitud_laboratorio_pdf')->render();
        $pdf = \App::make('dompdf.wrapper');
        $pdf->setPaper('A4', 'letter');
        $pdf->loadHTML(utf8_encode($view));
        return $pdf->stream('solicitud.pdf');
        
	}

	// 11 Dic 2023 . Janeth C.
	// Método que se encarga de llamar al iframe para invocar la vista y enviar parametros por get
	public function imprime_solicitud_laboratorio_pdf() {
		?>
			<iframe src="Agenda/solicitud_laboratorio_pdf?folio=<?= (isset($_POST['folio']) ? $_POST['folio'] : '') ?>&centro_sal=<?= (isset($_POST['centro_sal']) ? $_POST['centro_sal'] : '')?>" id="ifrSolicitudes_Laboratorio" name="ifrSolicitudes_Laboratorio" height="90%" width="90%">
		<?php

	}



	// 20 Mar 2024 . Juan Pablo Sánchez Bracamontes . Reporte concentrado de referencias solicitadas
	public function rpt_concentrado_solicitudes_referencias(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.Referencias.mostrarRpt_concentrado_solicitudes_referencias');
		}
	}


	// 20 Mar 2024 . Juan Pablo Sánchez Bracamontes 
	public function get_rpt_concentrado_solicitudes_referencias(){
		session_start(); // El formulario requiere el uso de variables de sesion
		$var = ejLib::getInstance();
		$soapclient = $var->getWs();
		$wsClave = $var->get_wsClave();
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
	
		    $centro_sal = '';
		    if(isset($_POST['CLUES_solicitante']) && trim($_POST['CLUES_solicitante']) != ''){
		    	$data = $soapclient->AdministrarCatalogos_get_CentroSalud('', $_POST['CLUES_solicitante'], $wsClave);
				$data = new SimpleXMLElement(utf8_encode($data));
				$cs = $data->respuesta;
				$centro_sal = $cs->centro_sal;
		    }

		    $data = $soapclient->ConsultaExterna_getLstReferenciasConcentrado_rpt_excel($centro_sal, $_POST['tipo_solicitud'], $_POST['fecha_inicio'], $_POST['fecha_cierre'], $wsClave);

			$data = new SimpleXMLElement(utf8_encode($data));
			$lstRows = $data->respuesta;

			echo '<table style="font-size: 12px; width: 98%; margin:auto;" class="table table-bordered table-hover"><tr><th style="text-align: center;" data-col="0" data-tipo="2">Unidad médica</th><th style="text-align: center;" data-col="1" data-tipo="2">Tipo</th><th style="text-align: center;" data-col="2" data-tipo="1">Solicitadas</th><th style="text-align: center;" data-col="3" data-tipo="1">Agendadas</th><th style="text-align: center;" data-col="4" data-tipo="1">Sin agendar</th><th style="text-align: center;" data-col="5" data-tipo="1">Canceladas</th></tr>';
			foreach($lstRows AS $row){ 
				echo "<tr><td>".utf8_decode($row->unidad_medica)."</td><td>".$row->tipo."</td><td>".$row->solicitadas."</td><td>".$row->agendadas."</td><td>".$row->sin_agendar."</td><td>".$row->canceladas."</td></tr>";
			}
			echo "</table>";
		    
		}
	}


	// 10 Oct 2024 . Janeth C . recuperar patologicos
	public function get_patologicos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.getPatologicos');
		}
	}


	// 10 Oct 2024 . Janeth C . recuperar patologicos
	public function get_toxicomanias(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.mostrarAddToxicomanias');
		}
	}

	// 18 Oct 2024 . Janeth C . recuperar patologicos
	public function getAddToxicomanias(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.AddToxicomanias');
		}
	}

	
	public function get_quirurgicos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.mostrarAddQuirurgicos');
		}
	}


public function getAddQuirurgicos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.AddQuirurgicos');
		}
	}


	public function get_alergicos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.mostrarAddAlergicos');
		}
	}

	
	public function getAddAlergicos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.AddAlergicos');
		}
	}
	
		public function get_hospitalizaciones(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.mostrarAddHospitalizaciones');
		}
	}
	public function getAddHospitalizaciones(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.AddHospitalizaciones');
		}
	}

	
	public function get_padecimientos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.mostrarAddPadecimientos');
		}
	}

	public function getAddPadecimientos(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.AddPadecimientos');
		}
	}

	//
		public function get_discapacidades(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.mostrarAddDiscapacidades');
		}

}

	public function getAddDiscapacidades(){
		session_start(); // El formulario requiere el uso de variables de sesion
		if(!$this->esCuentaRoot()==null && $this->esCuentaRoot()>0)
			return redirect('login');

		if($this->hayCuentaActiva()){
		    return view('ConsultaExterna.HistoriaClinica.AddDiscapacidades');
		}

}


/*public function impime_receta_CE_pdf() {
	$folio = '';
    $centro_sal = '';    
    //Se reciben las variables por POST, que fueron enviadas desde viewImprimirReferencia
	if(isset($_POST['folio']))
      $folio = $_POST['folio'];
    if(isset($_POST['centro_sal']))
      $centro_sal = $_POST['centro_sal'];   

       
		?>
		<!-- Generar folio de receta --> 


      <div class="modal-header">
        <h5 style="display: inline-block; font-size: 18px; margin: 0; line-height: 1; font-family: 'Source Sans Pro',sans-serif; font-weight: 500;">RECETA MÉDICA</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
			<iframe src="Consulta_receta_imprime_pdf?folio=<?php echo $folio; ?>&centro_sal=<?php echo $centro_sal; ?>" id="ifrNota" name="ifrNota" height="90%" width="90%">
		<?php



	} */

	//
	  public function Consulta_receta_imprime_pdf(){
    	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 redirect('login');

		if(!isset($_GET['folio']) || !isset($_GET['centro_sal']) )
			return "No se han proporcionado los parámetros necesarios para el formulario solicitado...";
		// Get folios y medicamentos 
		
		if($this->hayCuentaActiva()){


    		//Metodo encargado de visualizar el pdf en un formulario Modal.
			$view =  \View::make('Agenda.Apartados.revisarMedicamentos_receta_pdf')->render();
	        $pdf = \App::make('dompdf.wrapper');
	       // $pdf->setPaper('A4', 'landscape');
	      //	$pdf->setPaper('letter', 'portrait');
	      	$pdf->setPaper([0, 0, 612, 792]);
	        $pdf->loadHTML(utf8_encode($view));
	        $pdf->render();
	        return $pdf->stream('receta.pdf');
	        
        }else{
			return redirect('login');
		}

	}


}

