💳 Créditos API · saldo en tiempo real OpenRouter (pago) · cadena gratuita · DeepSeek retirado
Solo OpenRouter consume crédito, y únicamente en la ruta clinical_case. Las dos cadenas gratuitas no gastan saldo: Texto (educational) → NVIDIA · Mistral 🇫🇷 · Gemini · Groq · Visión (Scan IA) → Mistral 🇫🇷 → Gemini (UE), sin OpenRouter (retirado de visión por residencia UE · audit #13). Por eso el saldo bajo de OpenRouter no afecta a Scan IA: la lectura de imágenes seguiría funcionando aunque llegue a $0. DeepSeek retirado desde jun-2026 (su saldo residual ya no genera alertas). Aviso automático si OpenRouter baja de $5.
No existe dato oficial de ocupación (operador sin API, DGT sin cámaras en Cartagena, Google sin Popular Times en la zona). Esto es una estimación heurística: 65 % patrón horario de parking hospitalario (consultas 8-15 h, visitas 17-20 h) + 35 % congestión vial en ~1 km² alrededor (tiles de tráfico de Google Maps, z16). De madrugada Google no pinta tráfico → solo patrón horario. Orientativa, no operativa.
Visitantes anónimos (pacientes, curiosos) medidos por GA4 · Total cuentas y profesionales = censo real de Firebase Auth (todas las cuentas que se han autenticado alguna vez, no solo las que tienen perfil en Firestore) · Páginas vistas acumuladas.
GA4 tiene latencia ~24 h y NO reporta bien el día en curso, así que «Visitas hoy» sale del registro propio (tiempo real, cuenta también a quien bloquea GA4); GA4 solo se usa para los rangos de 7/28 días. El censo de Auth y los roles de Firestore son en tiempo real.
Eventos de visita hoy
—
registro propio · eventos, no personas únicas
Visitantes 28 días
—
usuarios únicos · GA4
Páginas vistas (28d)
—
screenPageViews · GA4
Profesionales registrados
—
cuentas con email · Auth
Total cuentas
—
Firebase Auth (censo real)
Sesiones anónimas
—
cuentas Auth sin login (pacientes)
Uso contabilizado
—
eventos propios · incluye adblock
📱 Dispositivos · 28 días
Cargando…
🌍 País de acceso · 28 días
Cargando…
🔄 Nuevos vs recurrentes · 28 días
Cargando…
👥 Roles en Firestore
Cargando…
🟢 Usuarios activos · últimas 24/48 h users.lastSeen · tiempo real
Quién ha entrado en la webapp con sesión iniciada, con su email, última actividad y uso de IA.
La marca la deja cada carga de página con sesión (users.lastSeen), en tiempo real.
Las filas «sesión anónima» son pacientes (asistente/subida de imágenes) — sin email por diseño.
Datos visibles solo en este panel privado.
Cargando actividad…
📋 Directorio de usuarios registrados Firestore · users
Listado completo de cuentas registradas con fecha de alta, último acceso y dominio. Permite identificar usuarios que se registraron antes de una versión concreta.
Cargando directorio…
💶 Costes totales IA · día / semana / mes suma de todos los modelos
Gasto total en IA sumando todos los modelos y proveedores (NVIDIA, Mistral, Gemini, Groq, OpenRouter…). «Hoy» se calcula en vivo desde aiRequests; semana y mes salen de los snapshots diarios del cron. La estimación proyecta con la media diaria de los últimos 14 días.
⚠️ Estimación interna por llamada, no facturación real (los aciertos de caché cuentan 0 €).
Hoy
—
en vivo · desde las 00:00
Semana (últimos 7 días)
—
incluye hoy en vivo
Mes natural
—
—
Estimado · día
—
media diaria 14 d
Estimado · semana
—
media × 7
Estimado · fin de mes
—
gastado + proyección días restantes
💰 Auditoría de costes IA routing · cuotas · SLA
Análisis ejecutivo de costes y SLA por proveedor IA. Identifica oportunidades de ahorro (routing
óptimo educational vs clinical), cuotas free-tier en riesgo de saturación, y proveedores con
latencia por encima del umbral.
⚠️ Estos €/mes son una ESTIMACIÓN interna por llamada (aiRequests), NO la facturación real.
El gasto real (recargas) está arriba en «Créditos API · gastado real».
Coste mes (€)
—
—
Ahorro potencial (€)
—
ya materializado: educational/visión gratuitos desde jun-2026
Cuota Gemini · pico diario
—
free tier 1500/día (límite REAL diario)
P95 visión (s)
—
visión Mistral 🇫🇷 → Gemini (UE)
🔀 Routing por proveedor · pago vs gratuito
Distribución de llamadas y coste por proveedor en el último mes. Lo esperable hoy: NVIDIA/Mistral/Gemini/Groq concentran el volumen a $0 y solo clinical_case (OpenRouter) genera coste. Si aparece gasto fuera de OpenRouter, algo se ha desviado de la cadena.
Cargando…
📊 Cuota Google AI Studio · Gemini
El límite free-tier de Gemini es por día (1500 RPD para gemini-2.5-flash-lite), no mensual: la barra mide el peor día del rango contra el cupo diario. Al pasar 50 usuarios activos, aumentar prioridad de monitorización para evitar cortes.
P50/P95/P99 latencia por proveedor (último mes). Visión va por la cadena UE gratuita (Mistral 🇫🇷 → Gemini); si el P95 supera 30s de forma sostenida, revisar la cadena en routing.ts.
Cargando…
📈 Proyección coste mensual
Coste mensualizado actual + proyección a 30/60/90 días manteniendo el ritmo del último mes. Útil para anticipar recargas de OpenRouter (clinical_case) y comunicar burn-rate a dirección médica.
Cargando…
📋 Informe ejecutivo para dirección médica:
el botón "Exportar informe PDF del mes" (arriba) ya incluye estos KPIs en formato clínico-legible.
Próxima iteración: envío automático mensual por email (Cloud Function programada).
⚖️ Estado regulatorio por módulo MDR 2017/745 · AI Act 2024/1689 · auditoría 14-jul-2026 + remediación PR #548
Semáforo de cada módulo con IA según la auditoría de docs/legal/auditoria-regulatoria-extensa-2026-07-14.
🟢 fuera no es producto sanitario ·
🟡 condicionado fuera mientras el prompt no individualice (comentario // REGULATORIO en el código) ·
🔴 califica soporte a decisión clínica (Regla 11) — solo uso pleno vía art. 5.5 in-house con el SMS.
Lista mantenida a mano: actualizar al añadir módulos IA.
📤 Publicar contenido superadmin · directo, sin moderación
Sube un PDF o cualquier formato (máx 50 MB) con su descripción a cualquier apartado o
subapartado. Se publica al instante en documentos_aprobados — visible en
Biblioteca, categorías de documentos y el grid de su especialidad en el
panel médico, con tu autoría y trazabilidad v2 (estado · versión · historial).
📚 Cobertura documental por especialidad acción pendiente
Especialidades de Atención Hospitalaria con su recuento de documentos cargados en
documents.json. Las que tengan 0 documentos aparecen con badge rojo:
la consulta IA no responderá con material local hasta que se suban PDFs/protocolos al panel
Profesionales → Atención Hospitalaria → [especialidad] → +Añadir.
Cargando…
⚠️ Acción recomendada:
las especialidades con badge rojo (0 docs) muestran un banner amarillo a los usuarios indicando
que la IA no tiene material local. Para resolverlas, sube documentos propios o de fuentes con
licencia abierta (SEAP, SERMEF, etc.).
📊 Visualización general gráficos interactivos
📈 Llamadas por día
💶 Coste por día (EUR)
🍩 Distribución por tipo
🤖 Coste por modelo
Llamadas IA
—
cargando…
Coste estimado
—
EUR · acumulado rango
Tokens in/out
—
de prompt / generados
Cache hit
—
ahorro de coste
Usuarios únicos
—
en el rango
Errores
—
tasa y recuento
🎯 KPIs para reporting · frases listas para cliente auto-generado del rango
Cuatro cifras que puedes decir en voz alta en una reunión con Jefe de Urgencias, Dirección Médica o Medical Affairs. Se calculan del rango seleccionado arriba (Hoy / 7d / 30d / 90d).
Cargando KPIs…
🌐 Tráfico web (GA4) property 525246514
Visitas totales a area2cartagena.es, medikai.es y carlosgalera-a11y.github.io/Cartagenaeste/. Datos agregados por Google Analytics 4; incluye sesiones no autenticadas (pacientes, visitantes anónimos). Latencia GA4 ~24h. Caché 5 min en sessionStorage.
📐 Ventanas acumulativas y coherentes: «hoy» está contenido en «7 días», que está contenido en «28 días», así que cada cifra es siempre ≥ que la anterior (nunca «hoy 50 / 7 días 5»). «Hoy» es casi en tiempo real; las ventanas más amplias pueden ir unas horas por detrás mientras GA4 consolida el día, y en ese caso se elevan al valor de hoy para no mostrar un imposible. Cada rango se pide a GA4 por separado (fix jul-2026).
Usuarios hoy
—
cargando…
Usuarios 7 días
—
sesiones/vistas
Usuarios 28 días
—
sesiones/vistas
🌍 Por dominio · 28 días
Consultando GA4…
📈 Usuarios diarios · 7 días
📄 Top páginas · 28 días
Cargando…
🎯 Top fuentes · 28 días
Cargando…
📋 Actividad de hoy GA4 · desde las 00:00 · casi tiempo real
Qué está pasando hoy en la web: cuánta gente ha entrado, qué páginas visitan y qué acciones ejecutan (eventos GA4: consultas IA, clics, búsquedas, scroll…). Respeta el filtro de dominio de la sección de Tráfico. «Hoy» en GA4 es casi tiempo real.
Usuarios hoy
—
cargando…
Sesiones hoy
—
visitas iniciadas
Páginas vistas hoy
—
screenPageViews
📄 Páginas más visitadas · hoy
Consultando GA4…
⚡ Acciones (eventos) · hoy
Consultando GA4…
📆 Actividad diaria
Cargando…
🧭 Uso por apartado · Profesionales vs Pacientes 28 días · GA4
Distribución del tráfico web entre el área para profesionales sanitarios (panel-medico, urgencias, casos clínicos, triaje, evidencia, plantillas, notas guardia) y el área para pacientes (consejos salud, prepara consulta, recursos, recordatorios, vacunas). Sirve para ver si el producto está "tirando" más por un lado u otro.
👨⚕️ Pageviews Profesionales
—
28d · GA4
👨⚕️ Usuarios Profesionales
—
~ estimado por proporción de views (no medidos)
👨👩👧 Pageviews Pacientes
—
28d · GA4
👨👩👧 Usuarios Pacientes
—
~ estimado por proporción de views (medición real: «Análisis profundo»)
⚖️ Ratio Pro/Pac
—
views profesional ÷ pacientes
📊 Reparto profesionales / pacientes · 28d
🏆 Top páginas Profesionales · 28d
Cargando…
🏆 Top páginas Pacientes · 28d
Cargando…
🕐 Heatmap de uso IA · 24h × 7 días cuando se está usando
Llamadas a IA por hora del día y día de la semana del rango seleccionado. Identifica picos (¿guardias de noche? ¿mañanas en consulta?) y franjas muertas. Útil para programar mantenimientos o anunciar nuevas features sin disrupción.
Calculando heatmap…
🔻 Embudo de conversión · de visitante a usuario activo GA4 + Firestore
Cuántos visitantes anónimos pasan a usuarios registrados, y de esos cuántos llegan a usar la IA al menos una vez al mes. Las tasas de conversión típicas en B2B sanidad son 2-5% (anon→registered) y 30-60% (registered→active).
Calculando embudo…
🧩 Uso por módulo del producto contajes Firestore acumulados
Recuento total de elementos creados por usuarios en cada módulo (acumulado, todo tiempo). Permite ver cuáles módulos están "calientes" y cuáles no se usan. Útil para priorizar mejoras o decidir si un módulo merece seguir vivo.
Contando colecciones…
👥 Personas por herramienta · usuarios únicos Firestore · quién usa qué
No documentos: personas. Cuántos usuarios distintos usan cada herramienta clave. MegaCuaderno y Notebooks guardan un doc por uid, así que el recuento de docs = recuento de personas. Para la IA se cuentan uids únicos en aiRequests de los últimos 7 y 30 días.
Contando personas…
🔁 Retención de usuarios por cohorte primer uso → vuelta D1/D7/D14
De los usuarios que entraron por primera vez en cada día del rango, ¿cuántos volvieron al día siguiente, a los 7 días y a los 14 días? La retención D7 > 30% es señal de uso profesional. < 10% es exploración esporádica.
Calculando cohortes…
🎯 Análisis profundo · Profesionales vs Pacientes 28 días · GA4 segmentado por path
Comparativa lado a lado del comportamiento real de visitantes en cada apartado, incluyendo usuarios anónimos sin registro. Cada KPI se calcula filtrando GA4 por las páginas de cada apartado. Útil para argumentos comerciales (¿"X profesionales del Área II ya usan la app"?) y para decidir dónde invertir desarrollo.
💡 Frases listas para tu propuesta comercial
Generando…
👨⚕️
Profesionales
panel-medico, urgencias, casos, evidencia, plantillas, etc.
Cargando…
👨👩👧
Pacientes
consejos-salud, prepara-consulta, vacunas, etc.
Cargando…
📱 Dispositivos · Pro vs Pac
Cargando…
🔁 Nuevos vs recurrentes · Pro vs Pac
Cargando…
🕐 Hora del día · Profesionales
🕐 Hora del día · Pacientes
🔍 Top fuentes · Profesionales
Cargando…
🔍 Top fuentes · Pacientes
Cargando…
📄 Top páginas · Profesionales (con tiempo medio)
Cargando…
📄 Top páginas · Pacientes (con tiempo medio)
Cargando…
🌆 Top ciudades · Profesionales
Cargando…
🌆 Top ciudades · Pacientes
Cargando…
📊 GA4 Reporting Hub tiempo real · adquisición · engagement · eventos · geo
Réplica de los informes principales de GA4 en una sola vista. Incluye tiempo real (últimos 30 min), adquisición por canal, engagement profundo, top eventos y desglose geográfico+idioma. Latencia GA4 ~24h salvo el bloque realtime.
🟢
Tiempo real · últimos 30 minutos
—
cargando…
⏱️ Engagement medio/sesión
—
28 días
📈 Tasa engagement
—
% sesiones engaged
🚪 Bounce rate
—
% rebotes
🎯 Eventos/sesión
—
media 28d
🔁 Sesiones/usuario
—
28 días
📄 Páginas/sesión
—
28 días
📡 Adquisición por canal · 28d
Cargando…
🎯 Top eventos · 28d
Cargando…
🌆 Top ciudades · 28d
Cargando…
🗣️ Idiomas · 28d
Cargando…
📄 Páginas con más engagement · 28d
Cargando…
🌟 Cómo llegan los nuevos usuarios · 28d (first-user source/medium)
Cargando…
⚡ Latencia detallada por modelo p50 · p95 · p99 del rango
Distribución de latencia (en ms) de cada modelo IA usado en el rango. p95 > 5000 ms suele indicar saturación del proveedor o prompts demasiado largos. Útil para detectar antes de que el usuario se queje.
Calculando latencias…
🔗 Cadena IA · eslabón que sirve salud del failover en el rango
La cadena de texto es nvidia → mistral → gemini → groq → openrouter: si el primario está sano debe acumular la mayoría de llamadas. Un vuelco hacia eslabones inferiores = el primero está fallando (el motivo por eslabón sale en functions:log como «proveedor falló»).
Cargando…
🤖 Uso y gasto por modelo agregado del rango · € = estimación interna (gasto real: panel «Créditos API»)
Cargando…
📋 Uso por tipo de petición
Cargando…
👥 Top usuarios por coste uid + email cuando está disponible
Cargando…
💶 Gasto por usuario y por IA (€) cada usuario · desglose por IA · € = estimación interna (gasto real: «Créditos API»)
Para cada usuario, su gasto total y el desglose por cada IA (Gemini, DeepSeek, Qwen, Mistral…) en euros, con llamadas, tokens y aciertos de caché. El gasto de Gemini agrupa las llamadas directas y las enrutadas vía OpenRouter (google/gemini-*). Pulsa una fila para ver el detalle por modelo.
Cargando…
🏢 Distribución por dominio de email infiere centro/servicio
Cruza cada UID que ha llamado a la IA con users/{uid}.email (escrito al login). Permite distinguir tráfico de Urgencias HSL (dominio institucional SMS) del tráfico residencial (gmail) y pacientes (móvil).
Cargando…
🔥 Gasto por proveedor IA · quién quema qué tokens NVIDIA / Mistral / Gemini / Groq · históricos
Responde a dos preguntas operativas: (a) qué proveedor concentra el uso (hoy la cadena gratuita: NVIDIA/Mistral/Gemini; DeepSeek/Qwen son históricos) y (b) qué usuario concreto está disparando ese uso. Útil para vigilar el único coste real (OpenRouter · clinical_case) e identificar early adopters.
Cargando…
📅 Coste diario por persona heatmap usuarios × últimos N días
Pivot de gasto en € por usuario y día del rango actual. Las celdas más oscuras = más coste ese día. La columna Total de la derecha es el gasto del usuario en todo el rango; la fila Total abajo es el coste diario agregado de todos los usuarios. Permite detectar picos sospechosos (un día anómalo de un usuario) y patrones de uso real (¿se concentra el gasto en pocas personas?).
Cargando…
🚨 Llamadas fallidas qué falla a tus usuarios
Errores reales registrados en aiRequests.error durante el rango. Incluye fecha, usuario, tipo, modelo intentado y el mensaje de error (cap a 200 chars en el backend). Patrones que mirar: errores 4xx por validación (prompts vacíos, App Check), 5xx por proveedor caído, "all providers failed" si fallaron los fallbacks. Si el mismo usuario acumula varios fallos seguidos, ya es escalable a soporte.
Cargando…
⏱️ Tiempo en página real GA4 · userEngagementDuration · 28d
Cuánto tiempo activo (en segundos) pasan los usuarios en cada página/sección, según userEngagementDuration / activeUsers de GA4. Es la métrica real de retención, no solo "abrió la página". Ordenado por engagement total (tiempo×usuarios). Una página con muchas views pero engagement bajo = trampolín; engagement alto con pocos usuarios = power-users absorbidos.
Matriz que cruza usuarios con módulos del producto. Cada celda dice si ese usuario ha tocado ese módulo y cuántas veces (cuando aplica). Datos cruzados de 5 colecciones que YA escribes (sin tracker externo, sin riesgo RGPD): aiRequests (IA por tipo), scan_uploads (Scan IA imágenes), megacuaderno_backups (MegaCuaderno), mis_notebooks (Notebooks), mis_plantillas (Plantillas). Ordenado por nº módulos usados. Detecta early-adopters reales (varios módulos) frente a curiosos (solo uno).
Cruzando colecciones…
📄 Páginas más usadas · accesos por profesional Firestore · accesos_profesionales
Top páginas/módulos por nº de accesos y nº de profesionales únicos en los últimos 30 días, leyendo la colección accesos_profesionales que rellena app-main.js → logPageAccess(). No es tiempo en página (eso lo daría GA4 cuando funcione); es un proxy fiable de qué herramientas usan los profesionales tras hacer login. Una página con accesos altos pero pocos usuarios únicos = un power-user; muchos usuarios pero pocos accesos = página de descubrimiento.
Cargando…
👤 Consumo por usuario · sus páginas y herramientas favoritas Firestore · accesos_profesionales · 90 días
Pivota los accesos por usuario: para cada profesional, qué páginas y herramientas usa más y cuándo entró por última vez. Responde a «¿quién usa qué?» de un vistazo — útil para identificar power-users, ver qué herramienta engancha a cada perfil y detectar usuarios que solo exploraron una vez. Datos de accesos_profesionales (login real, sin tracker externo, sin riesgo RGPD).
Cruzando accesos por usuario…
📈 Cuota diaria del admin · hoy
Cargando…
🏔️ Top consumo diario histórico collectionGroup(quotas) · todos los días
Los 10 días con más llamadas de un mismo usuario en toda la historia. Sirve para saber si alguien roza el techo de 50/día y decidir si conviene subirlo. Datos de users/{uid}/quotas/{fecha}.count (contador atómico que gestiona la Cloud Function askAi).
Cargando…
🔍 Últimas 50 llamadas
Cargando…
⏱️ SLA IA por proveedor últimos 30 snapshots diarios
Datos agregados por la Cloud Function aggregateDailyMetrics (02:30 Madrid). Muestra p50/p95/p99 de latencia, tasa de error y coste por proveedor.
Cargando snapshots…
🏥 Centros (multi-tenancy) solo superadmin
Centro activo en este navegador
Cargando…
➕ Registrar nuevo centro
🎟️ Invitaciones a Centros de Salud códigos de un solo uso · 7 días
Genera un código para que un compañero pueda editar la ficha de un Centro de Salud del Área II. El compañero lo introduce en centros-salud.html → pestaña "Soy del equipo" y recibe el rol redactor o coordinador para ese centro únicamente.
Últimos códigos emitidos
Cargando…
🏥 Previsión de afluencia a Urgencias modelo calibrado con datos reales · NO clínico
Predicción de pacientes/día para los próximos 7 días con un modelo calibrado con 363 días de afluencia real del H.G.U. Santa Lucía (informes LURG018, jul-2025 → jun-2026, 97.460 atenciones agregadas sin PII). Motor: media por día de semana con decaimiento (semivida 90 d) + ajustes de festivo, post-festivo y vísperas navideñas (calendario laboral oficial de Cartagena). Validación temporal: MAE ≈ 17 pacientes (6,3%), mejor que la media simple por día de semana.
⚠️ Uso organizativo, no clínico, sin validación prospectiva. Coeficientes entrenados hasta jun-2026: refrescar cada pocos meses con scripts/entrenar-afluencia.py y nuevos LURG018 (los PDF con PII nunca salen del equipo local; aquí solo llegan agregados). La cifra incluye, desglosado, un ajuste térmico con la previsión de Open-Meteo (+2…+6% solo en extremos de calor/frío, según literatura, pendiente de calibración local — el MAE ±17 se midió sin este término). El AQI de abajo sigue siendo solo contexto.
Calculando previsión…
🗓️ Mapa de afluencia prevista · próximas 12 semanas
Cada celda es un día, coloreado por la afluencia prevista del modelo calibrado (solo calendario; el ajuste térmico solo aplica a los 7 días con previsión meteo):
menos (≤255)
· media (256–289)
· mayor (≥290 · lunes y rebotes)
🌡️ Contexto: índice de presión (heurística 0-100, demo)
Modificadores por datos abiertos: meteo y calidad del aire (Open-Meteo), acceso a AP (findes/festivos), calendario y temporada respiratoria. Heurística no validada — orienta sobre severidad/contexto, no suma a la cifra de pacientes.
■ Normal (<45)■ Elevada (45-70)■ Alta (>70)🚨 Urgencias · 🩺 Atención Primaria (cerrada findes/festivos)
Calculando con meteo + calendario…
Fuentes: serie LURG018 agregada (local, sin PII) · calendario laboral oficial Cartagena · Open-Meteo (meteo + European AQI, abiertas y sin clave). Siguiente paso del roadmap: TimesFM 2.5 con ≥2 años de serie (ver docs/producto/plan-forecasting-timesfm.md).
🩺 Presión prevista en Atención Primaria inferida de Urgencias · NO medido en AP
No hay datos propios de AP. Este panel infiere el ritmo de los centros de salud a partir de la afluencia medida en Urgencias, por la relación de vasos comunicantes (AP y Urgencias comparten los motores de demanda: rebote de fin de semana y post-festivo). AP abre L–V no festivos; findes/festivos cerrada → deriva a SUAP/Urgencias.
⚠️ Modelo inferido, sin validar contra datos de AP. Lo robusto es el orden de los días (lunes = pico por backlog de finde; baja hasta el viernes; post-festivo repunta). El nivel absoluto de consultas no es inferible sin export real de AP (OMI-AP/SIAP): se muestra presión relativa (% sobre media laborable). El «efecto lunes» se amplifica ×1,6 respecto a Urgencias (parámetro kAP, ajustable cuando haya datos).
Infiriendo presión de AP…
🗓️ Mapa de presión en AP · próximas 12 semanas
menos presión (mié–vie)
· media (martes)
· mayor (lunes y post-festivo)
· AP cerrada (finde/festivo)
Método: perfil relativo por día de semana medido en Urgencias (LURG018) + amplificación del efecto lunes propia de AP + herencia del rebote post-festivo. Documentación: docs/producto/modelo-inferencia-atencion-primaria.md.
Carga asistencial prevista por semana natural: en Urgencias, total y media de pacientes/día (modelo calibrado con 363 días reales del HGUSL); en Atención Primaria, presión relativa media de los días laborables y los días de mayor presión (modelo inferido de Urgencias). Los festivos de cada semana bajan Urgencias y cierran AP.
⚠️ Estimación organizativa, no clínica. Urgencias: MAE ≈ 17 pac/día (validado). AP: presión relativa inferida, sin validar contra datos de AP.
Calculando previsión semanal…
Datos: users/{uid}/aiRequests · centros · actualizados en tiempo real desde Firestore · no se almacena el texto de prompts ni respuestas.