64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
from flask import Flask, render_template, jsonify, Response
|
|
from conexion import get_connection
|
|
from dotenv import load_dotenv
|
|
import os
|
|
|
|
load_dotenv()
|
|
|
|
monitor1 = os.getenv("MONITOR_ID_1")
|
|
monitor2 = os.getenv("MONITOR_ID_2")
|
|
|
|
app = Flask(__name__)
|
|
|
|
def obtener_turnos(mon_id):
|
|
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':mon_id})
|
|
datos = cursor.fetchall()
|
|
cursor.close()
|
|
conn.close()
|
|
return datos
|
|
except Exception as e:
|
|
print(f"Error al conectar: {e}")
|
|
return None
|
|
|
|
def obtener_pie(mon_id):
|
|
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':mon_id})
|
|
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/datos1')
|
|
def api_datos1():
|
|
filas = obtener_turnos(monitor1)
|
|
return jsonify(filas)
|
|
|
|
@app.route('/api/datos2')
|
|
def api_datos2():
|
|
filas = obtener_turnos(monitor2)
|
|
return jsonify(filas)
|
|
|
|
@app.route('/api/footer')
|
|
def api_pie():
|
|
mensaje = obtener_pie(1)
|
|
return Response(mensaje, mimetype='text/plain')
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True,host='192.168.82.156') |