Uso e integridad de información. Este documento es una demostración académica basada exclusivamente en datos sintéticos. Ni las cifras ni los episodios describen una IPS real. Los umbrales utilizados son supuestos de gestión que deben validarse clínicamente; no constituyen normas obligatorias. Las asociaciones y los escenarios no demuestran causalidad.

Mensaje central para la alta dirección
La presión en urgencias no debe leerse como un problema aislado de “muchos pacientes”, sino como una combinación de demanda concentrada, capacidad rígida y decisiones operativas que llegan tarde. Este informe está diseñado para convertir cifras en decisiones concretas.

1 1. Mensaje a la alta dirección: la historia que cuentan las cifras

1.1 1.1. Decisión solicitada

Autorizar un piloto operativo de seis semanas, condicionado a verificar primero los datos institucionales, para adaptar la capacidad de atención a los períodos de mayor demanda de urgencias. La decisión no consiste en ampliar permanentemente la planta ni modificar los criterios clínicos de priorización: consiste en medir los cuellos de botella y ensayar una reorganización reversible de turnos y flujo, con supervisión de seguridad del paciente.

1.2 1.2. Resumen ejecutivo de evidencia

Lectura ejecutiva. El patrón dominante no es una congestión homogénea durante todo el trimestre: es una congestión intermitente, concentrada y previsible en ciertos momentos. La implicación gerencial es clara: una respuesta uniforme para todo el día desperdicia recursos en algunas franjas y llega tarde en otras.

En el experimento reproducible de 90 días, la atención se observa en cuatro franjas diarias. El análisis permite contrastar la variación de la demanda, la ocupación simulada, los tiempos medios de espera y la proporción de personas que abandonan antes de completar la atención. El análisis recomienda no administrar el servicio únicamente con promedios trimestrales: se requieren métricas desagregadas por franja, seguimiento de episodios críticos y un esquema de evaluación antes de escalar inversiones.

# Una observación equivale a una franja de seis horas de un día.
fechas <- seq(as.Date("2026-01-01"),as.Date("2026-03-31"),by="day")
franjas <- c("00:00-05:59","06:00-11:59","12:00-17:59","18:00-23:59")
datos <- tidyr::expand_grid(fecha=fechas,franja=factor(franjas,levels=franjas)) %>%
  mutate(t=as.integer(fecha-min(fecha))+1,
         id_franja=as.integer(franja),
         fin_semana=lubridate::wday(fecha,week_start=1)>=6,
         choque=fecha>=as.Date("2026-02-15") & fecha<=as.Date("2026-02-21"),
         demanda_esperada=pmax(4,23+c(-11,5,13,7)[id_franja]+4*fin_semana+
             10*choque+2*sin(t/8)+0.07*t),
         llegadas=rpois(n(),lambda=demanda_esperada),
         ocupacion_pct=round(pmax(57,pmin(108,72+0.32*llegadas+4*choque+
             3*(id_franja==3)+rnorm(n(),0,5))),1),
         espera_min=round(pmax(8,12+1.12*llegadas+
             1.5*pmax(ocupacion_pct-90,0)+rnorm(n(),0,8)),1),
         abandono=rbinom(n(),size=llegadas,
             prob=plogis(-4.5+0.023*espera_min)),
         hospitalizaciones=rbinom(n(),size=llegadas,prob=0.23),
         atencion_60_pct=round(100*plogis(3.6-0.046*espera_min),1),
         mes=format(fecha,"%Y-%m")) %>%
  select(fecha,mes,franja,fin_semana,choque,llegadas,ocupacion_pct,
         espera_min,abandono,hospitalizaciones,atencion_60_pct)
stopifnot(nrow(datos)==length(fechas)*4, !anyNA(datos),
          all(datos$llegadas>=0),all(datos$abandono<=datos$llegadas),
          all(datos$hospitalizaciones<=datos$llegadas))
Magnitud del escenario: 11.400 llegadas en 360 franjas; 53,0 minutos de espera media ponderada; 84,7 % de ocupación media ponderada; 3,95 % de abandono acumulado; 17,8 % de franjas por encima de 90 % de ocupación.

Interpretación para decisión. Una media favorable puede coexistir con momentos críticos de saturación. La gestión debe concentrarse en la variabilidad temporal y en la capacidad de respuesta, no en la cifra promedio aislada. Los resultados muestran características del simulador, no evidencia observada en instituciones colombianas.

Decisión gerencial Evidencia necesaria Condición de aprobación
Mejorar captura de datos Definiciones y trazabilidad de sellos de tiempo Validación por Calidad y Sistemas
Reasignar capacidad por franja Persistencia del pico en datos reales Piloto temporal sin comprometer seguridad
Escalar recursos o infraestructura Beneficio medido y presupuesto incremental Evaluación y análisis costo-efectividad local

2 2. Contexto, mandato gerencial y método A³

2.1 2.1. Problema de gestión y población objetivo

La congestión de urgencias se presenta cuando la demanda y la duración del flujo asistencial presionan los recursos disponibles. La organización debe resolver simultáneamente oportunidad, seguridad, experiencia y productividad. La audiencia del informe es: Gerencia General, Dirección Médica, Coordinación de Urgencias, Oficina de Calidad, Talento Humano, Planeación y comité institucional de desempeño.

Pregunta decisoria: ¿en qué períodos se concentra la presión sobre urgencias y qué mejora de proceso conviene probar primero, con criterios explícitos para mantenerla o suspenderla?

2.2 2.2. Modelo A³: Atención – Análisis – Acción

Fase Pregunta de dirección Producto verificable
Atención ¿Cuál es el problema que requiere decisión? Alcance, audiencia, riesgos y criterios
Análisis ¿Dónde, cuándo y con qué intensidad ocurre? Métricas, visualizaciones, pruebas de robustez
Acción ¿Qué podemos cambiar y cómo sabremos si funcionó? Piloto, responsables, seguimiento y evaluación

2.3 2.3. Ficha técnica de la medición

El ejercicio es un análisis descriptivo y asociativo de una serie sintética longitudinal de 90 días (enero-marzo de 2026). La unidad de análisis es el agregado de seis horas, no el paciente. Se generan llegadas, ocupación, espera, abandonos y hospitalizaciones con una semilla fija. Se introduce deliberadamente un episodio de presión entre el 15 y el 21 de febrero para comprobar si los métodos detectan un evento atípico. Las conclusiones no pueden extrapolarse a datos asistenciales reales.

Definiciones operativas:

  • Demanda: número de llegadas en cada franja de seis horas.
  • Ocupación: porcentaje simulado de uso de capacidad; puede superar el 100 %.
  • Espera: media sintética en minutos por franja; no es el tiempo hasta triage de una persona específica.
  • Abandono: conteo simulado de personas que abandonan; la tasa utiliza el total de llegadas como denominador.
  • Riesgo de congestión: para priorización de esta práctica, porcentaje de franjas con ocupación superior al umbral configurable del 90 %.

Estrategia de validación: revisar unidades, duplicados fecha-franja, datos faltantes y coherencia entre conteos y tasas. En un ejercicio institucional posterior se requerirían estratificación por triage y complejidad, datos de dotación y egresos, y control de calidad de marcas temporales.

Auditoría mínima del conjunto de datos sintéticos
Chequeo Resultado
Registros generados 360
Duplicados fecha-franja 0
Datos faltantes 0
Abandonos mayores que llegadas 0
Días con cuatro franjas 90

3 3. Desempeño operativo: dónde se rompe la promesa de oportunidad

3.1 3.1. Demanda y variabilidad por franjas

p_franjas <- ggplot(franja_resumen,aes(x=franja,y=llegadas,fill=franja)) +
 geom_col(width=.7,show.legend=FALSE) +
 geom_text(aes(label=scales::comma(llegadas,big.mark=".",decimal.mark=",")),
           vjust=-.4,size=3.7) +
 scale_fill_manual(values=c("#A7D8DE","#63C5DA","#00A6A6","#0B3C5D")) +
 scale_y_continuous(expand=expansion(mult=c(0,.12))) +
 labs(title="Volumen acumulado de llegadas por franja",subtitle="Trimestre simulado · conteos sin ajuste por horas (franjas iguales)",
 x="Franja de seis horas",y="Llegadas simuladas",caption="Fuente: simulación reproducible") + tema
p_franjas

Hallazgo contundente. Las llegadas no se distribuyen uniformemente entre franjas. La de mayor volumen es 12:00-17:59, con 3.649 llegadas simuladas. ¿Por qué importa? Un esquema de recursos idéntico en todos los turnos podría no responder a esta asimetría. ¿Qué decisión sugiere? Revisar la correspondencia entre dotación efectiva, llegadas, tiempos de atención y complejidad durante cada franja, antes de asignar personal adicional.

3.2 3.2. Tendencia diaria y detección de eventos críticos

critico <- diario[which.max(diario$espera),]
p_tendencia <- ggplot(diario,aes(fecha,espera)) +
 geom_line(color=turquesa,linewidth=.9) +
 geom_hline(yintercept=params$umbral_espera,linetype="dashed",color=coral, linewidth=.8) +
 annotate("rect",xmin=as.Date("2026-02-15"),xmax=as.Date("2026-02-21"),
          ymin=-Inf,ymax=Inf,fill=dorado,alpha=.12) +
 geom_point(data=critico,color=coral,size=3.2) +
 ggrepel::geom_text_repel(data=critico,aes(label=paste0("Pico: ",round(espera)," min")),
                size=3.6,seed=12,max.overlaps=Inf) +
 labs(title="Tiempo medio de espera: evolución y episodios de presión",
 subtitle="Banda sombreada: evento extraordinario incluido intencionalmente en la simulación",
 x="Fecha",y="Espera media ponderada (min)",caption="Línea discontinua: umbral exploratorio, no estándar clínico") + tema
p_tendencia

Hallazgo contundente. El máximo de la espera media diaria se observó el 21/02/2026, con 75,6 minutos. La visualización permite identificar episodios y no solamente el valor promedio. ¿Por qué importa? La persistencia de picos puede incrementar la presión de servicio y exige distinguir aumentos estacionales, faltantes operativos o congestión en egresos. ¿Qué decisión sugiere? Desencadenar revisión operacional de turnos y procesos cada vez que se observe una desviación repetida, no a partir de una única observación.

3.3 3.3. Coexistencia de ocupación y demora

p_relacion <- ggplot(datos,aes(x=ocupacion_pct,y=espera_min,color=franja)) +
 geom_point(alpha=.55,size=1.7) +
 geom_smooth(method="lm",se=FALSE,linewidth=.7) +
 scale_color_manual(values=c("#6C7A89","#00A6A6","#D9A441","#E85D3F")) +
 labs(title="Ocupación y espera por franja: patrón de asociación",
 subtitle="Los puntos representan franjas, no pacientes; la asociación no demuestra causalidad",
 x="Ocupación simulada (%)",y="Espera simulada (min)",color="Franja") + tema
p_relacion

Hallazgo contundente. La nube de puntos permite evaluar la covariación entre presión y demora. ¿Por qué importa? La ocupación podría ser un indicador de alerta temprana, pero también refleja diferencias de demanda y del mecanismo utilizado para simular las variables. ¿Qué decisión sugiere? En datos reales, construir una alerta operativa complementada con volumen, mezcla de triage, dotación y capacidad de egresos; no usar la regresión presentada como base para asignar responsabilidades.

3.4 3.4. Comparación ejecutiva de desempeño

Perfil operativo sintético por franja
Franja Llegadas Espera media (min) Ocupación media (%) Abandono (%)
00:00-05:59 1545 34.3 78.2 2.27
06:00-11:59 2958 51.5 83.1 3.48
12:00-17:59 3649 61.9 89.2 5.02
18:00-23:59 3248 53.3 84.2 3.97

Esta tabla ofrece al comité un punto de partida para identificar prioridades, pero debe complementarse con intervalos de incertidumbre, severidad clínica y costo marginal de las acciones. Una tasa elevada no equivale automáticamente a un resultado atribuible a la dotación de personal.

4 4. Análisis para decidir: qué explican las cifras y hasta dónde llegan

4.1 4.1. Asociación estadística y advertencias

modelo <- lm(espera_min ~ llegadas + ocupacion_pct + franja + fin_semana,
             data=datos)
coef <- summary(modelo)$coefficients
r2 <- summary(modelo)$r.squared
knitr::kable(data.frame(Variable=rownames(coef),Estimacion=round(coef[,1],3),
 Error_Estandar=round(coef[,2],3),Valor_p=signif(coef[,4],3)),row.names=FALSE,
 caption="Modelo lineal explicativo exploratorio")
Modelo lineal explicativo exploratorio
Variable Estimacion Error_Estandar Valor_p
(Intercept) -7.173 6.105 0.24100
llegadas 1.074 0.077 0.00000
ocupacion_pct 0.276 0.084 0.00105
franja06:00-11:59 -0.293 1.661 0.86000
franja12:00-17:59 -0.383 2.060 0.85300
franja18:00-23:59 -2.305 1.821 0.20600
fin_semanaTRUE -1.553 1.010 0.12500

El modelo tiene un \(R^2\) observado de 0,705 dentro de los datos sintéticos. No tiene interpretación causal ni validez predictiva externa: los tiempos fueron generados, en parte, a partir de las llegadas y la ocupación, de modo que parte de la asociación fue incorporada al propio diseño de simulación. Su contribución didáctica es demostrar cómo contrastar variables simultáneamente e interpretar magnitudes y limitaciones.

4.2 4.2. Prueba de sensibilidad de los umbrales

sensibilidad <- data.frame(Umbral=c(85,90,95,100)) %>%
 mutate(`Franjas que superan umbral (%)`=vapply(Umbral,
        function(u) round(100*mean(datos$ocupacion_pct>u),1),numeric(1)))
knitr::kable(sensibilidad,caption="Variación del porcentaje de alertas según el umbral")
Variación del porcentaje de alertas según el umbral
Umbral Franjas que superan umbral (%)
85 39.4
90 17.8
95 5.0
100 0.6

Lectura para gerencia: el volumen de alertas depende de la definición del umbral. Un límite demasiado bajo puede generar fatiga de alarmas; uno demasiado alto puede impedir una reacción oportuna. La institución debe aprobar umbrales en conjunto con equipos clínicos y operativos, con base en evidencia y capacidad de respuesta.

4.3 4.3. Escenario de mejora ilustrativo

escenarios <- data.frame(
 Escenario=c("Situación base sintética","Reducción hipotética del 10 %",
 "Reducción hipotética del 15 %","Reducción hipotética del 20 %"),
 `Espera media esperada (min)`=round(espera_global*c(1,.90,.85,.80),1),
 check.names=FALSE)
knitr::kable(escenarios,caption="Escenarios aritméticos: no son pronósticos ni estimaciones de impacto")
Escenarios aritméticos: no son pronósticos ni estimaciones de impacto
Escenario Espera media esperada (min)
Situación base sintética 53.0
Reducción hipotética del 10 % 47.7
Reducción hipotética del 15 % 45.0
Reducción hipotética del 20 % 42.4

Qué permite decidir: el escenario ilustra posibles metas de gestión y abre la conversación sobre costo, viabilidad y efecto operacional. Qué no permite afirmar: no prueba que una redistribución de turnos produzca una reducción de 10 %, 15 % o 20 %; esos porcentajes se introducen como supuestos exógenos. La aprobación de una expansión requiere evidencia real del piloto y presupuesto detallado.

5 5. Exploración interactiva para los comités

El gráfico siguiente permite que el comité contraste visualmente la curva temporal mediante tooltips, zoom y paneo. Se conserva como instrumento de exploración, no como sustituto del análisis escrito. Para detectar tendencias debe revisarse con cautela la agregación por día, pues reduce la variabilidad de las franjas.

plotly::ggplotly(p_tendencia,tooltip=c("x","y"))

¿Qué evidencia? Cuándo aparecen picos y cuánto duran. ¿Por qué importa? Hace auditable la selección de episodios que merecen explicación. ¿Qué decisión sugiere? Solicitar un análisis de causas que integre admisiones, salidas, demanda y personal disponible para cada episodio detectado.

6 5.1. Lo que esta historia significa para la gerencia

Primer acto: la demanda crece por momentos, no de forma uniforme.
Segundo acto: cuando la capacidad no acompaña ese crecimiento, la espera se dispara.
Tercer acto: la organización reacciona tarde si solo mira promedios mensuales.
Desenlace propuesto: gobernar por franjas críticas, con datos confiables, pilotos controlados y reglas explícitas de decisión.

7 6. Ruta de acción y gobernanza

7.1 6.1. Recomendación 1: piloto de gestión por franjas

Acción: implementar durante seis semanas un ajuste acotado y reversible de distribución de personal, tiempos de clasificación y flujo operativo en la franja de mayor presión que confirmen los datos reales. Antes de intervenir, establecer dos semanas de línea base, verificar cobertura clínica y definir controles de seguridad del paciente.

Responsable: Dirección Médica y Coordinación de Urgencias, con Talento Humano y Calidad.

Indicadores de seguimiento: espera media y percentiles observados, abandono, eventos de seguridad, volumen por triage, pacientes en espera y horas efectivas de dotación. Regla de decisión: mantener o escalar solo si hay una mejora sostenida sin deteriorar indicadores de seguridad ni trasladar congestión a otra franja.

7.2 6.2. Recomendación 2: institucionalizar analítica operativa y alertas

Acción: disponer un conjunto único de definiciones y tablero de seguimiento operativo con revisión semanal, trazabilidad y alertas validadas. Implementar capacitación para captura de datos, documentación del diccionario y verificación de inconsistencias entre fuentes.

Responsable: Planeación, Sistemas de Información y Calidad; valida el Comité de Gestión y Desempeño.

Indicadores: completitud y oportunidad de carga, consistencia de marcas temporales, porcentaje de alertas atendidas, cierre de acciones y evolución de los indicadores asistenciales.

7.3 6.3. Cronograma de decisiones

Horizonte Entregable Responsable Criterio de éxito
Semanas 1-2 Auditoría de datos y línea base Sistemas + Calidad Métricas trazables y validadas
Semanas 3-4 Diseño y despliegue controlado del piloto Urgencias + Talento Humano Cobertura clínica y protocolo aprobados
Semanas 5-8 Seguimiento semanal y ajustes Coordinación de Urgencias No deterioro de seguridad; tendencias documentadas
Semanas 9-10 Evaluación del piloto y costos Planeación + Calidad Informe antes-después, limitaciones y costos
Semana 11 Decisión de continuar, corregir o detener Gerencia Acta con decisión sustentada

7.4 6.4. Matriz de riesgos

Riesgo Consecuencia Mitigación propuesta
Datos incompletos o definiciones inconsistentes Falsas alarmas y decisiones equivocadas Validación previa y auditoría de fuentes
Redistribuir personal sin análisis de complejidad Riesgo asistencial Aprobar cambios con Dirección Médica y Calidad
Confundir correlación con causalidad Inversión basada en inferencias incorrectas Piloto y evaluación controlada cuando sea viable
Desplazar congestión a otra franja Mejora aparente, no sistémica Medir todas las franjas y el recorrido del paciente
Sostener una intervención sin presupuesto Riesgo financiero y operativo Estimar costo marginal y beneficios verificados

8 7. Conclusión y decisión propuesta

La principal contribución gerencial del informe no es una cifra aislada, sino una secuencia de decisión trazable: comprender la presión por franja; verificar si los picos son persistentes; explorar sus asociaciones y posibles explicaciones; probar acciones de bajo riesgo; medir sus resultados y decidir posteriormente sobre recursos permanentes.

Se solicita al comité: (i) aprobar la validación de datos y diseño del piloto; (ii) designar responsables y establecer reporte semanal; (iii) exigir que cualquier expansión posterior esté soportada en resultados reales, controles de seguridad y estimación financiera. El ejercicio cumple una función ilustrativa de metodología reproducible y no sustituye el diagnóstico de una institución concreta.

9 8. Anexo técnico de reproducibilidad y limitaciones

Reproducción: abrir este .Rmd en RStudio, instalar los paquetes y utilizar Knit para obtener HTML. El documento fija set.seed(params$semilla); los umbrales son configurables en params del YAML. Para reproducir el anexo de flexdashboard, abrir el archivo complementario incluido en el paquete y compilarlo también.

Limitaciones relevantes: las variables son sintéticas, no se dispone de datos individuales ni de acuidad del triage, no hay dimensión económica real, no se identifican efectos causales, el evento excepcional fue definido artificialmente y los umbrales son meramente ilustrativos. Por tanto, las prioridades simuladas no justifican por sí mismas decisiones clínicas, contractuales o presupuestales reales.

Paquetes y funciones clave: ggplot2 usa geometrías geom_col(), geom_line() y geom_point(); estilos theme_minimal() y paletas scale_fill_brewer(); el pico se destaca con annotate() y ggrepel::geom_text_repel(). plotly::ggplotly() habilita exploración. Los agregados se construyen en dplyr con promedios ponderados calculados antes de sumar el denominador, para evitar el error de longitud detectado previamente.

Referencias metodológicas para ampliación: documentación oficial de ggplot2 (https://ggplot2.tidyverse.org/), plotly para ggplot2 (https://plotly.com/ggplot2/) y flexdashboard (https://rstudio.github.io/flexdashboard/).

## **R y entorno de ejecución:** R version 4.6.1 (2026-06-24 ucrt).  **Semilla:** 20261023.  **Fecha de compilación:** 2026-10-23.