diff --git a/app.py b/app.py
index 563a1bf..9f33699 100644
--- a/app.py
+++ b/app.py
@@ -10,6 +10,8 @@ puerto = os.getenv("PORT")
modo = os.getenv("MODE", "1")
monitor1 = os.getenv("MONITOR_ID_1")
monitor2 = os.getenv("MONITOR_ID_2")
+es_quirofano_1 = os.getenv("IS_QUIRO_1")
+es_quirofano_2 = os.getenv("IS_QUIRO_2")
tema = os.getenv("THEME", "csm")
tema_styles = {
"csm": {
@@ -24,13 +26,17 @@ tema_styles = {
app = Flask(__name__)
-def obtener_turnos(mon_id):
+def obtener_turnos(mon_id, es_quiro):
conn = get_connection()
if not conn:
return []
try:
cursor = conn.cursor()
- cursor.execute("SELECT CONS_ESTADO.CODIGO_IMPRESION AS CONSULTA, CONS_ESTADO.ESTADO_ID AS ESTADO_CONSULTA, NVL(CONS_TURNOS.CODIGO_TURNO, NULL) AS TURNO, NVL(CONS_TURNOS.ESTADO_ID, 2) AS ESTADO_TURNO FROM ( SELECT ROW_NUMBER () OVER ( PARTITION BY ESTADO.ESTANCIA_ID ORDER BY ESTADO.CONSULTA_ESTADO_ID DESC ) AS RN, ESTADO.ESTADO_ID, ESTANCIA.* FROM CSMK_CONSULTA_ESTADO ESTADO JOIN CSMK_ESTANCIA ESTANCIA ON ESTADO.ESTANCIA_ID = ESTANCIA.ESTANCIA_ID WHERE ESTADO.FECHA = TRUNC (SYSDATE) AND ESTANCIA.MONITOR_ID = :monitor ) CONS_ESTADO LEFT JOIN ( SELECT t.* FROM ( SELECT TM.*, ROW_NUMBER() OVER ( PARTITION BY TM.ESTANCIA_ID ORDER BY TM.TURNO_MON_ID DESC ) AS RN FROM CSMK_TURNO_MON TM WHERE TM.FECHA = TRUNC (SYSDATE) AND TM.ESTADO_ID IN (1,2) AND TM.MONITOR_ID = :monitor ) t WHERE t.RN = 1 ) CONS_TURNOS ON CONS_ESTADO.ESTANCIA_ID = CONS_TURNOS.ESTANCIA_ID AND CONS_ESTADO.MONITOR_ID = CONS_TURNOS.MONITOR_ID WHERE CONS_ESTADO.RN = 1 ORDER BY CONSULTA ASC",{'monitor':mon_id})
+ if es_quiro == "1":
+ cursor.execute("SELECT QUIROFANOS.CODIGO_INTERNO AS CONSULTA, 1 AS ESTADO_CONSULTA, NVL (TURNOS.CODIGO_TURNO, NULL) AS TURNO, NVL (TURNOS.ESTADO_ID, 2) AS ESTADO_TURNO FROM (SELECT DISTINCT(CSMK_TURNO.CODIGO_PERSONAL), FP.CODIGO_INTERNO FROM CSMK_TURNO, NOVAHIS.FPERSONA FP WHERE ESTANCIA_ID = 639 AND FECHA = TRUNC(SYSDATE) AND CSMK_TURNO.CODIGO_PERSONAL = FP.CODIGO_PERSONAL) QUIROFANOS LEFT JOIN (SELECT t.* FROM (SELECT CT.CODIGO_PERSONAL, CTM.*, ROW_NUMBER () OVER (PARTITION BY CT.CODIGO_PERSONAL ORDER BY CTM.TURNO_MON_ID DESC) AS RN FROM CSMK_TURNO_MON CTM, CSMK_TURNO CT WHERE CTM.FECHA = TRUNC (SYSDATE) AND CTM.ESTADO_ID IN (1, 2) AND CTM.MONITOR_ID = :monitor AND CTM.TURNO_ID = CT.TURNO_ID) t WHERE t.RN = 1) TURNOS ON QUIROFANOS.CODIGO_PERSONAL = TURNOS.CODIGO_PERSONAL ORDER BY QUIROFANOS.CODIGO_INTERNO ASC",{'monitor':mon_id})
+ else:
+ cursor.execute("SELECT CONS_ESTADO.CODIGO_IMPRESION AS CONSULTA, CONS_ESTADO.ESTADO_ID AS ESTADO_CONSULTA, NVL(CONS_TURNOS.CODIGO_TURNO, NULL) AS TURNO, NVL(CONS_TURNOS.ESTADO_ID, 2) AS ESTADO_TURNO FROM ( SELECT ROW_NUMBER () OVER ( PARTITION BY ESTADO.ESTANCIA_ID ORDER BY ESTADO.CONSULTA_ESTADO_ID DESC ) AS RN, ESTADO.ESTADO_ID, ESTANCIA.* FROM CSMK_CONSULTA_ESTADO ESTADO JOIN CSMK_ESTANCIA ESTANCIA ON ESTADO.ESTANCIA_ID = ESTANCIA.ESTANCIA_ID WHERE ESTADO.FECHA = TRUNC (SYSDATE) AND ESTANCIA.MONITOR_ID = :monitor ) CONS_ESTADO LEFT JOIN ( SELECT t.* FROM ( SELECT TM.*, ROW_NUMBER() OVER ( PARTITION BY TM.ESTANCIA_ID ORDER BY TM.TURNO_MON_ID DESC ) AS RN FROM CSMK_TURNO_MON TM WHERE TM.FECHA = TRUNC (SYSDATE) AND TM.ESTADO_ID IN (1,2) AND TM.MONITOR_ID = :monitor ) t WHERE t.RN = 1 ) CONS_TURNOS ON CONS_ESTADO.ESTANCIA_ID = CONS_TURNOS.ESTANCIA_ID AND CONS_ESTADO.MONITOR_ID = CONS_TURNOS.MONITOR_ID WHERE CONS_ESTADO.RN = 1 ORDER BY CONSULTA ASC",{'monitor':mon_id})
+
datos = cursor.fetchall()
cursor.close()
conn.close()
@@ -62,16 +68,16 @@ def obtener_pie(mon_id1, mon_id2):
@app.route('/')
def index():
tema_colores = tema_styles.get(tema, tema_styles["csm"])
- return render_template("index.html", mode=modo, theme=tema, theme_colors=tema_colores)
+ return render_template("index.html", mode=modo, theme=tema, theme_colors=tema_colores, quiro1=es_quirofano_1, quiro2=es_quirofano_2)
@app.route('/api/datos1')
def api_datos1():
- filas = obtener_turnos(monitor1)
+ filas = obtener_turnos(monitor1, es_quirofano_1)
return jsonify(filas)
@app.route('/api/datos2')
def api_datos2():
- filas = obtener_turnos(monitor2)
+ filas = obtener_turnos(monitor2, es_quirofano_2)
return jsonify(filas)
@app.route('/api/footer')
diff --git a/example.env b/example.env
index 8da8439..b51feaa 100644
--- a/example.env
+++ b/example.env
@@ -9,4 +9,6 @@ DB_SID=REALRAC1
MODE="1"
THEME="csm"
MONITOR_ID_1=1
-MONITOR_ID_2=2
\ No newline at end of file
+MONITOR_ID_2=2
+IS_QUIRO_1=0
+IS_QUIRO_2=1
\ No newline at end of file
diff --git a/static/js/scripts.js b/static/js/scripts.js
index 472046e..c34cbe7 100644
--- a/static/js/scripts.js
+++ b/static/js/scripts.js
@@ -3,7 +3,7 @@ const estadoAnterior = {};
let ultimoFooter = "";
-function cargarTabla(endpoint, tablaId) {
+function cargarTabla(endpoint, tablaId, esQuiro) {
fetch(endpoint)
.then(res => res.json())
.then(filas => {
@@ -25,7 +25,11 @@ function cargarTabla(endpoint, tablaId) {
const td1 = document.createElement("td");
td1.textContent = fila[0];
td1.className = `border align-middle ${sizeClass} m`;
- td1.style.backgroundColor = window.themeColors.bg1;
+ if (esQuiro === "1") {
+ td1.style.backgroundColor = "#008968";
+ } else {
+ td1.style.backgroundColor = window.themeColors.bg1;
+ }
tr.appendChild(td1);
const td2 = document.createElement("td");
@@ -38,7 +42,11 @@ function cargarTabla(endpoint, tablaId) {
td2.className = `border bg-[#a9a9a9] align-middle ${sizeClass}`;
} else if (estadoConsulta == 1) {
td2.textContent = fila[2];
- td2.style.backgroundColor = window.themeColors.bg2;
+ if (esQuiro === "1") {
+ td2.style.backgroundColor = "#00aa7a";
+ } else {
+ td2.style.backgroundColor = window.themeColors.bg2;
+ }
const originalText = fila[2];
const blinkText = `PASE A
CONSULTA`;
let blink = false;
@@ -53,20 +61,37 @@ function cargarTabla(endpoint, tablaId) {
clearInterval(td2.blinkInterval);
}
- td2.blinkInterval = setInterval(() => {
- blink = !blink;
- if (blink) {
- td2.innerHTML = blinkText;
- td2.style.fontWeight = "bold";
- } else {
- td2.textContent = originalText;
- td2.style.fontWeight = "";
- }
- }, 1000);
+ if (esQuiro === "1") {
+ td2.blinkInterval = setInterval(() => {
+ blink = !blink;
+ if (blink) {
+ td2.style.backgroundColor = "#00aa7a";
+ td2.style.color = "#FFFFFF";
+ } else {
+ td2.style.backgroundColor = '#ffff00';
+ td2.style.color = "#000000";
+ }
+ }, 1500);
+ } else {
+ td2.blinkInterval = setInterval(() => {
+ blink = !blink;
+ if (blink) {
+ td2.innerHTML = blinkText;
+ td2.style.fontWeight = "bold";
+ } else {
+ td2.textContent = originalText;
+ td2.style.fontWeight = "";
+ }
+ }, 1500);
+ }
} else {
td2.className = `border align-middle ${sizeClass}`;
- td2.style.backgroundColor = window.themeColors.bg2;
+ if (esQuiro === "1") {
+ td2.style.backgroundColor = "#00aa7a";
+ } else {
+ td2.style.backgroundColor = window.themeColors.bg2;
+ }
td2.textContent = originalText;
if (td2.blinkInterval) {
@@ -108,10 +133,11 @@ function cargarFooter() {
}
function actualizarTablas() {
- cargarTabla("/api/datos1", "turnos1");
- if (document.getElementById("turnos2")) {
- cargarTabla("/api/datos2", "turnos2");
- }
+ cargarTabla("/api/datos1", "turnos1", quiro1);
+ cargarTabla("/api/datos2", "turnos2", quiro2);
+ //if (document.getElementById("turnos2")) {
+ // cargarTabla("/api/datos2", "turnos2");
+ //}
}
//cargarFooter();
diff --git a/templates/index.html b/templates/index.html
index 4dc9da7..51ce574 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -5,6 +5,10 @@
+
@@ -26,8 +30,13 @@
- | CONSULTA |
- TURNO |
+ {% if quiro1 == '1' %}
+ QUIRÓFANO |
+ TURNO |
+ {% else %}
+ CONSULTA |
+ TURNO |
+ {% endif %}
@@ -38,8 +47,13 @@
- | CONSULTA |
- TURNO |
+ {% if quiro2 == '1' %}
+ QUIRÓFANO |
+ TURNO |
+ {% else %}
+ CONSULTA |
+ TURNO |
+ {% endif %}