<?php
//Incluímos inicialmente la conexión a la base de datos
require "../config/Conexion.php";

class Atencion
{
	//Implementamos nuestro constructor
	public function __construct()
	{

	}

	//Implementamos un método para insertar registros
	public function insertar($idpersona, $idusuario, $idservicio, $idempleado, $costo, $directo_atencion = false)
	{
		// Si es directo a atención, estado = 'Triaje' (salta el triaje), sino 'Registrado' (pasa por triaje)
		$estado = $directo_atencion ? 'Triaje' : 'Registrado';

		$sql = "INSERT INTO atencion (idpersona,idusuario,fecha,hora,idservicio,idempleado,costo,estado)
		VALUES ('$idpersona','$idusuario',curdate(),curtime(),'$idservicio','$idempleado','$costo','$estado')";
		return ejecutarConsulta($sql);
	}

	//Implementamos un método para editar registros
	public function editar($idatencion, $idpersona, $idusuario, $idservicio, $idempleado, $costo)
	{
		$sql = "UPDATE atencion SET idpersona='$idpersona',idservicio='$idservicio',idempleado='$idempleado',costo='$costo' WHERE idatencion='$idatencion'";
		return ejecutarConsulta($sql);
	}

	//Implementamos un método para activar categorías
	public function anular($idatencion)
	{
		$sql = "UPDATE atencion SET estado='Anulado' WHERE idatencion='$idatencion'";
		return ejecutarConsulta($sql);
	}

	//Implementar un método para mostrar los datos de un registro a modificar
	public function mostrar($idatencion)
	{
		$sql = "SELECT a.idatencion,a.idpersona,concat(p.apaterno,' ',p.amaterno,' ',p.nombre) as paciente,
        CONCAT((YEAR( CURDATE( ) ) - YEAR( fecha_nacimiento ) - IF( MONTH( CURDATE( ) ) < MONTH( fecha_nacimiento), 1, IF ( MONTH(CURDATE( )) = MONTH(fecha_nacimiento),IF (DAY( CURDATE( ) ) < DAY( fecha_nacimiento ),1,0 ),0))),' años') as edad,
        p.num_documento, p.sexo, p.tipo_sangre, p.alergia, p.persona_responsable, p.fecha_nacimiento,
        p.telefono, p.direccion, p.ocupacion, p.email,
        a.fecha,a.hora,a.idusuario,
        (select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idusuario) as registrador,
        a.idempleado,
        (select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idempleado) as especialista,
        a.idservicio,s.nombre as servicio,a.costo,a.estado,
        t.presion_arterial,t.temperatura,t.frecuencia_respiratoria,t.frecuencia_cardiaca,t.saturacion,t.peso,t.talla,t.imc
        FROM atencion a 
        INNER JOIN persona p ON a.idpersona=p.idpersona 
        INNER JOIN servicio s on a.idservicio=s.idservicio 
        LEFT JOIN triaje t ON a.idatencion=t.idatencion
        WHERE a.idatencion='$idatencion'";
		return ejecutarConsultaSimpleFila($sql);
	}

	//Implementar un método para listar los registros
	public function listar()
	{
		$sql = "SELECT a.idatencion,a.idpersona,p.num_documento,CONCAT((YEAR( CURDATE( ) ) - YEAR( fecha_nacimiento ) - IF( MONTH( CURDATE( ) ) < MONTH( fecha_nacimiento), 1, 
IF ( MONTH(CURDATE( )) = MONTH(fecha_nacimiento),IF (DAY( CURDATE( ) ) < DAY( fecha_nacimiento ),1,0 ),0))),' años, ',(MONTH(CURDATE()) - MONTH( fecha_nacimiento) + 12 * IF( MONTH(CURDATE())<MONTH(fecha_nacimiento), 1,IF(MONTH(CURDATE())=MONTH(fecha_nacimiento),IF (DAY(CURDATE())<DAY(fecha_nacimiento),1,0),0)) - IF(MONTH(CURDATE())<>MONTH(fecha_nacimiento),(DAY(CURDATE())<DAY(fecha_nacimiento)), IF (DAY(CURDATE())<DAY(fecha_nacimiento),1,0 ))),' meses, ',(DAY( CURDATE( ) ) - DAY( fecha_nacimiento ) +30 * ( DAY(CURDATE( )) < DAY(fecha_nacimiento) )),' días') as edad,concat(p.nombre,' ',p.apaterno,' ',p.amaterno) as paciente,a.fecha,a.hora,(select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idusuario) as registrador,(select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idempleado) as especialista,s.nombre as servicio,a.costo,a.estado,
        (SELECT 1 FROM atencion_formatos WHERE idatencion=a.idatencion AND tipo_formato='RECETA' AND ruta_pdf IS NOT NULL LIMIT 1) as firmado,
        (SELECT ruta_pdf FROM atencion_formatos WHERE idatencion=a.idatencion AND tipo_formato='RECETA' LIMIT 1) as ruta_pdf_firmado
        FROM atencion a INNER JOIN persona p ON a.idpersona=p.idpersona inner join servicio s on a.idservicio=s.idservicio WHERE a.estado<>'Anulado' order by a.idatencion desc limit 0,100";
		return ejecutarConsulta($sql);
	}

	public function listarTriaje()
	{
		$sql = "SELECT a.idatencion,a.idpersona,concat(p.nombre,' ',p.apaterno,' ',p.amaterno) as paciente,a.fecha,a.hora,(select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idusuario) as registrador,(select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idempleado) as especialista,s.nombre as servicio,a.costo,a.estado FROM atencion a INNER JOIN persona p ON a.idpersona=p.idpersona inner join servicio s on a.idservicio=s.idservicio WHERE a.estado='Registrado' order by a.idatencion asc limit 0,100";
		return ejecutarConsulta($sql);
	}

	public function listarPlan()
	{
		$sql = "SELECT a.idatencion,a.idpersona,concat(p.nombre,' ',p.apaterno,' ',p.amaterno) as paciente,a.fecha,a.hora,
        (select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idusuario) as registrador,
        (select concat(apaterno,' ',amaterno,' ',nombre) from persona where idpersona=a.idempleado) as especialista,
        s.nombre as servicio,a.costo,a.estado,
        (SELECT 1 FROM atencion_formatos WHERE idatencion=a.idatencion AND tipo_formato='RECETA' AND ruta_pdf IS NOT NULL LIMIT 1) as firmado,
        (SELECT ruta_pdf FROM atencion_formatos WHERE idatencion=a.idatencion AND tipo_formato='RECETA' LIMIT 1) as ruta_pdf_firmado
        FROM atencion a INNER JOIN persona p ON a.idpersona=p.idpersona inner join servicio s on a.idservicio=s.idservicio WHERE a.estado='Triaje' order by a.idatencion asc limit 0,100";
		return ejecutarConsulta($sql);
	}

	public function listarEscritorioTriaje()
	{
		$sql = "SELECT a.idatencion,concat(p.apaterno,' ',p.amaterno,' ',p.nombre) as paciente FROM atencion a INNER JOIN persona p ON a.idpersona=p.idpersona WHERE a.estado='Registrado' order by a.idatencion asc limit 0,100";
		return ejecutarConsulta($sql);
	}

	public function listarEscritorioPlan()
	{
		$sql = "SELECT a.idatencion,concat(p.apaterno,' ',p.amaterno,' ',p.nombre) as paciente FROM atencion a INNER JOIN persona p ON a.idpersona=p.idpersona WHERE a.estado='Triaje' order by a.idatencion asc limit 0,100";
		return ejecutarConsulta($sql);
	}

	//Implementar un método para listar los registros y mostrar en el select
	public function select()
	{
		$sql = "SELECT * FROM atencion where condicion=1";
		return ejecutarConsulta($sql);
	}

	//Imprimir Atenciones
	public function listarAtenciones($idpersona)
	{
		$sql = "SELECT idatencion,fecha from atencion where idpersona='$idpersona'";
		return ejecutarConsulta($sql);
	}

}

