<?php 

require_once "conexion.php";

class ModeloTriaje{

    static public function MdlMostrarPacientesEspera($tabla, $item, $valor){

        if($item != null){

            $stmt = Conexion:: conectar()->prepare("SELECT * FROM $tabla WHERE $item = :$item");

            $stmt -> bindParam(":".$item, $valor, PDO::PARAM_STR);
            
            $stmt -> execute();

            return $stmt -> fetch();

        }else {

            $stmt = Conexion:: conectar()->prepare("SELECT p.nombres, p.apellidos, p.codigo_hc, p.dni , i.id_ingreso, i.fecha_ingreso, i.motivo_consulta, i.tipo_seguro
            FROM ingresoemergencia i
            INNER JOIN paciente p ON i.id_paciente = p.id_paciente
            LEFT JOIN triaje t ON i.id_ingreso = t.id_ingreso
            WHERE i.estado = 'activo' AND t.id_triaje IS NULL;");
            
            $stmt -> execute();

            return $stmt -> fetchAll();
        }

        $stmt -> close();

        $stmt = null;
    }


    /** CREAR triaje */

   static public function mdlRegistroTriaje($tabla, $datos){

        $db = Conexion::conectar();
        $stmt = $db->prepare("INSERT INTO $tabla(id_ingreso, nivel_prioridad, fecha_triaje, id_responsable, observaciones, glasgow_ocular, glasgow_verbal, glasgow_motor, glasgow_total, id_area, modo_ingreso, acomp_dni, acomp_nombre, acomp_telefono, acomp_direccion) VALUES (:id_ingreso, :nivel_prioridad,  CURRENT_TIMESTAMP, :id_responsable, :observaciones, :glasgow_ocular, :glasgow_verbal, :glasgow_motor, :glasgow_total, :id_area, :modo_ingreso, :acomp_dni, :acomp_nombre, :acomp_telefono, :acomp_direccion)");

        $stmt->bindParam(":id_ingreso", $datos["id_ingreso"], PDO::PARAM_INT);
        $stmt->bindParam(":nivel_prioridad", $datos["nivel_prioridad"], PDO::PARAM_STR);
        $stmt->bindParam(":id_responsable", $datos["id_responsable"], PDO::PARAM_INT);
        $stmt->bindParam(":observaciones", $datos["observaciones"], PDO::PARAM_STR);
        $stmt->bindParam(":glasgow_ocular", $datos["glasgow_ocular"], PDO::PARAM_INT);
        $stmt->bindParam(":glasgow_verbal", $datos["glasgow_verbal"], PDO::PARAM_INT);
        $stmt->bindParam(":glasgow_motor", $datos["glasgow_motor"], PDO::PARAM_INT);
        $stmt->bindParam(":glasgow_total", $datos["glasgow_total"], PDO::PARAM_INT);
        $stmt->bindParam(":id_area", $datos["id_area"], PDO::PARAM_INT);
        $stmt->bindParam(":modo_ingreso", $datos["modo_ingreso"], PDO::PARAM_STR);
        $stmt->bindParam(":acomp_dni", $datos["acomp_dni"], PDO::PARAM_STR);
        $stmt->bindParam(":acomp_nombre", $datos["acomp_nombre"], PDO::PARAM_STR);
        $stmt->bindParam(":acomp_telefono", $datos["acomp_telefono"], PDO::PARAM_STR);
        $stmt->bindParam(":acomp_direccion", $datos["acomp_direccion"], PDO::PARAM_STR);

        if($stmt->execute()){
            return $db->lastInsertId(); // Retornamos el ID para el siguiente insert
        } else {
            return 0;
        }
    }

    static public function mdlRegistroSignos($tabla, $datos){

        $stmt = Conexion::conectar()->prepare("INSERT INTO $tabla(id_triaje, fecha_registro, presion_arterial, pulso, temperatura, saturacion_oxigeno, frecuencia_respiratoria) VALUES (:id_triaje, CURRENT_TIMESTAMP, :presion_arterial, :pulso, :temperatura, :saturacion_oxigeno, :frecuencia_respiratoria)");

        $stmt->bindParam(":id_triaje", $datos["id_triaje"], PDO::PARAM_INT);
        $stmt->bindParam(":presion_arterial", $datos["presion_arterial"], PDO::PARAM_STR);
        $stmt->bindParam(":pulso", $datos["pulso"], PDO::PARAM_INT);
        $stmt->bindParam(":temperatura", $datos["temperatura"], PDO::PARAM_STR);
        $stmt->bindParam(":saturacion_oxigeno", $datos["saturacion_oxigeno"], PDO::PARAM_STR);
        $stmt->bindParam(":frecuencia_respiratoria", $datos["frecuencia_respiratoria"], PDO::PARAM_INT);

        if($stmt->execute()){
            return "ok";
        } else {
            return "error";
        }
    }

    /** EDITAR MARCA */

    static public function mdlEditarMarca($tabla, $datos){

        $stmt = Conexion::conectar()->prepare("UPDATE $tabla SET descripcion = :descripcion WHERE id = :id");

        $stmt -> bindParam(":descripcion", $datos["descripcion"], PDO::PARAM_STR);
        $stmt -> bindParam(":proveedor", $datos["proveedor"], PDO::PARAM_INT);
        $stmt -> bindParam(":id", $datos["id"], PDO::PARAM_STR);

        if($stmt -> execute()){
            return "ok";
        }else{
            return "error";
        }
        
        $stmt -> close();

        $stmt = null;
    }

        /*=============================================
	BORRAR MARCA
	=============================================*/

	static public function mdlBorrarMarca($tabla, $datos){

		$stmt = Conexion::conectar()->prepare("DELETE FROM $tabla WHERE id = :id");

		$stmt -> bindParam(":id", $datos, PDO::PARAM_INT);

		if($stmt -> execute()){

			return "ok";
		
		}else{

			return "error";	

		}

		$stmt -> close();

		$stmt = null;


	}
}