from flask import Flask, render_template, jsonify, Response from conexion import get_connection from dotenv import load_dotenv import os load_dotenv() monitor = os.getenv("MONITOR_ID") app = Flask(__name__) def obtener_turnos(): conn = get_connection() if not conn: return [] try: cursor = conn.cursor() cursor.execute("SELECT CONS_ESTAD.CODIGO_IMPRESION CONSULTA, CONS_ESTAD.ESTADO_ID ESTADO_CONSULTA, TM.CODIGO_TURNO TURNO, TM.ESTADO_ID ESTADO_TURNO FROM CSMK_TURNO_MON TM, (SELECT ROW_NUMBER() OVER (PARTITION BY ESTADO.ESTANCIA_ID ORDER BY CONSULTA_ESTADO_ID DESC) AS RN, ESTADO.ESTADO_ID, ESTANCIA.* FROM CSMK_CONSULTA_ESTADO ESTADO, CSMK_ESTANCIA ESTANCIA WHERE ESTADO.FECHA = TRUNC (SYSDATE) AND ESTADO.ESTANCIA_ID = ESTANCIA.ESTANCIA_ID AND ESTANCIA.MONITOR_ID = :monitor ORDER BY ESTADO.CONSULTA_ESTADO_ID DESC) CONS_ESTAD WHERE CONS_ESTAD.RN = 1 AND TM.ESTANCIA_ID = CONS_ESTAD.ESTANCIA_ID AND TM.MONITOR_ID = CONS_ESTAD.MONITOR_ID AND TM.ESTADO_ID IN (1,2) AND TM.FECHA = TRUNC(SYSDATE) ORDER BY CONSULTA ASC",{'monitor':monitor}) datos = cursor.fetchall() cursor.close() conn.close() return datos except Exception as e: print(f"Error al conectar: {e}") return None def obtener_pie(): conn = get_connection() if not conn: return [] try: cursor = conn.cursor() cursor.execute("SELECT MENSAJE FROM CSMK_MONITOR_PIE WHERE MONITOR_ID = :monitor AND INACTIVO = 0 ORDER BY MONITOR_PIE_ID ASC",{'monitor':monitor}) mensajes = [fila[0] for fila in cursor.fetchall()] mensaje_final = " ".join(mensajes) cursor.close() conn.close() return mensaje_final except Exception as e: print(f"Error al conectar: {e}") return None @app.route('/') def index(): return render_template("index.html") @app.route('/api/datos') def api_datos(): filas = obtener_turnos() return jsonify(filas) @app.route('/api/footer') def api_pie(): mensaje = obtener_pie() return Response(mensaje, mimetype='text/plain') if __name__ == '__main__': app.run(debug=True)