Fix Error: Se modifica el código para que el monitor emita el sonido de pase a la consulta cada 30s

This commit is contained in:
2025-07-02 14:52:07 +02:00
parent 938dbde0c3
commit c2cd5d9672
3 changed files with 39 additions and 12 deletions
+22 -2
View File
@@ -7,13 +7,12 @@ load_dotenv()
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 = 3 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")
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 = 12 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")
datos = cursor.fetchall()
cursor.close()
conn.close()
@@ -21,6 +20,22 @@ def obtener_turnos():
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 = 12 AND INACTIVO = 0 ORDER BY MONITOR_PIE_ID ASC")
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():
@@ -31,5 +46,10 @@ def api_datos():
filas = obtener_turnos()
return jsonify(filas)
@app.route('/api/footer')
def api_pie():
mensaje = obtener_pie()
return jsonify(mensaje)
if __name__ == '__main__':
app.run(debug=True)
+15 -8
View File
@@ -7,6 +7,14 @@ function cargarTabla() {
.then(filas => {
const tbody = document.getElementById("turnos");
tbody.innerHTML = "";
let sizeClass ="";
if (filas.length <= 7){
sizeClass ="text-7xl px-4 py-2";
} else {
sizeClass ="text-5xl px-3 py-1"
}
filas.forEach(fila => {
const id = fila[0];
@@ -14,7 +22,7 @@ function cargarTabla() {
const td1 = document.createElement("td");
td1.textContent = fila[0];
td1.className = "border px-4 py-2 bg-[#114b94] align-middle";
td1.className = `border bg-[#114b94] align-middle ${sizeClass}`;
tr.appendChild(td1);
const td2 = document.createElement("td");
@@ -24,18 +32,17 @@ function cargarTabla() {
if (estadoConsulta == 0) {
td2.textContent = "-";
td2.className = "border px-4 py-2 bg-[#a9a9a9] align-middle";
td2.className = `border bg-[#a9a9a9] align-middle ${sizeClass}`;
} else if (estadoConsulta == 1) {
td2.textContent = fila[2];
if (estadoTurno == 1) {
sonido.play();
td2.className = "border px-4 py-2 blink-yellow align-middle";
td2.className = `border blink-yellow align-middle ${sizeClass}`;
} else {
td2.className = "border px-4 py-2 bg-[#0a6eb2] align-middle";
td2.className = `border bg-[#0a6eb2] align-middle ${sizeClass}`;
}
} else {
td2.textContent = fila[2];
td2.className = "border px-4 py-2 bg-[#a9a9a9] align-middle";
td2.className = `border bg-[#a9a9a9] align-middle ${sizeClass}`;
}
if (estadoAnterior[id] === 2 && estadoTurno === 1) {
@@ -43,7 +50,7 @@ function cargarTabla() {
}
estadoAnterior[id] = estadoTurno;
tr.appendChild(td2);
tbody.appendChild(tr);
});
@@ -62,4 +69,4 @@ function cargarFooter() {
cargarFooter();
cargarTabla();
setInterval(cargarTabla, 30000);
setInterval(cargarFooter, 60000);
setInterval(cargarFooter, 60000);
+2 -2
View File
@@ -27,13 +27,13 @@
<th class="border px-4 py-2 bg-[#0a6eb2]">TURNO</th>
</tr>
</thead>
<tbody id="turnos" class="text-7xl">
<tbody id="turnos">
</tbody>
</table>
</div>
</div>
<footer class="w-full bg-[#008968] overflow-hidden h-14">
<div id="footer-text" class="whitespace-nowrap animate-scroll px-4 text-white"></div>
<div id="footer-text" class="text-4xl whitespace-nowrap animate-scroll px-4 text-white"></div>
</footer>
</body>
</html>