Saltar al contenido
La Forja Ingeniería sin filtros

Nivel 8 · 06 de 14

El tablero que leía la base de todas las clínicas

Salud

El tablero que leía la base de todas las clínicas

Una plataforma de turnos que usan 62 clínicas. Todas sobre la misma base de datos. El paciente entra al portal, elige horario, y el turno queda reservado en menos de tres segundos.

El año pasado el equipo comercial vendió un producto nuevo: un tablero donde cada clínica ve cómo se compara su tiempo de espera contra el promedio del resto. Se construyó apuntando el tablero directamente a la base de turnos. Salió rápido y funcionó.

Funcionó hasta que se descubrieron dos cosas.

La primera la vio operaciones. La consulta del tablero agrupa por clínica y recorre trece meses de turnos. Tarda entre 40 y 90 segundos, y toma bloqueos de lectura sobre la misma tabla donde se reserva. Todos los martes a las 9 de la mañana, cuando los directores médicos abren el tablero, reservar un turno pasa de dos segundos a once. Las clínicas que se quejan casi nunca son las que abrieron el tablero.

La segunda la vio una auditoría. Para calcular el promedio del resto, la consulta trae las filas de las 62 clínicas y descarta las ajenas después, en el código del tablero. El contrato con cada clínica dice que sus datos no salen hacia otra. Las filas ya habían salido: viajaron por la red y estuvieron en memoria de un proceso compartido.

El contrato no dice nada sobre promedios agregados. Por eso el producto se pudo vender, y por eso apagarlo no es la respuesta.

El equipo tiene 6 unidades operativas y hoy usa 4.

Rearmá el sistema para que el tablero deje de tocar la base viva y trabaje sobre un extracto que produce el componente que sabe de qué clínica es cada fila, sin que reservar un turno dependa nunca de que el tablero esté sano.

Un extracto acá es una copia ya agregada que vive fuera de la base de turnos. Dónde la dejes es tu decisión y las dos opciones son correctas: un almacenamiento de objetos sale más barato de operar y encaja si el agregado se recalcula entero cada vez; una base aparte te deja consultarlo por clínica y por mes sin releer el archivo completo, y cuesta una unidad operativa más. Lo único que no es un extracto es la base de turnos: ahí está el dato crudo, y el dato crudo es el problema.

Uso de IA: libre, pero tu respuesta tiene que decir qué dato ve el tablero comparativo en tu diseño, y por qué ese dato ya no permite reconstruir el turno de un paciente concreto.

Presupuesto
6 unidades operativas
Restricción
clínicas sobre la misma plataforma: al menos 62 clínicas
Restricción
tiempo aceptable para reservar un turno en horario pico: como máximo 3 segundos

Este ejercicio se resuelve arrastrando piezas en un lienzo, y eso pide una pantalla ancha y un puntero preciso. Acá podés leerlo entero. Abrilo desde una computadora para jugarlo.

Recién salido del horno

La Forja acaba de salir

Es lo más nuevo del sitio, así que es donde es más probable que algo se rompa. Si algo no anda como esperabas, o simplemente no se entiende, contámelo: cada reporte la mejora.

¿No usás GitHub? Podés escribirme por mail. ¿Nada que decir todavía? Ver lo ya reportado.