Mapa de pantallas
La superficie del producto. Sirve para ubicar dónde se ve cada cosa del negocio y para no buscar una pantalla que no existe.
Pantallas vivas
Pacientes
| Ruta | Qué hace |
|---|---|
patients/search | Buscador con pestañas Local y Sistema (padrón scrapeado), filtro por financiador, export a Excel |
patients/alta | ABM del paciente |
patients/bulk-search | Búsqueda masiva |
patients/:patientId | Detalle: cápitas PAMI (read-only), credenciales, cartilla, teléfonos, documentos, comentarios |
Episodios
| Ruta | Qué hace |
|---|---|
patients/hospitalization/list · new · :id | Internaciones: bandeja, alta y detalle |
patients/ambulatory/list · new · :id | Ambulatorio: bandeja, alta y detalle |
patients/ome/list | Bandeja de OMEs |
patients/bulk-ome-validation | Validación masiva de OMEs |
Autorizaciones
| Ruta | Qué hace |
|---|---|
authorizations | Bandeja de autorizaciones / OP |
authorizations/requests | Solicitudes de autorización |
Cápitas
Shell con hijos dashboard / adendas / categorias / tasas / alertas — es el modelo global de la
resolución. Aparte, capitas/abm es la cartilla local por paciente.
Dos cosas distintas en el mismo menú
capitas/* (dashboard, adendas, tasas…) es el modelo capitado global. capitas/abm es la cartilla local.
Ver la dualidad de "cápita".
Motor de reglas
Grupo "Reglas" del menú:
| Ruta | Qué hace |
|---|---|
rules-findings | Hallazgos: los posibles débitos detectados |
rules-config | Reglas por financiador (ABM) |
rules-practices | Configuración de la práctica por financiador |
rules-enablements | Habilitaciones (práctica → prácticas, módulo → módulos) |
rules-nomencladores | Nomencladores por financiador |
Además hay un panel de hallazgos embebido en el detalle del episodio.
Configuración y catálogos
| Ruta | Qué hace |
|---|---|
health-centers · /:id | Centros médicos y sus líneas de atención |
prices | Precios / nomenclador del prestador |
catalogs | Nomenclador (elementos y categorías) |
staff · specialist · agendas · appointment | Personal, servicios, agendas y turnos |
document-types | Tipos de documento (para la documentación adjunta) |
reports · stats · dashboard | Reportes, estadísticas y tablero |
control-pami | Cuentas de control + su dashboard |
bots | Estado de los bots de scraping |
notificaciones | Notificaciones del sistema |
onboarding | Alta inicial de datos |
Pública: login.
Cómo funciona el ruteo
- Dos layouts: uno autenticado y uno público.
- Rutas tipadas con
typesafe-routes, en jerarquía:app.routes.ts→pages/private.routes.ts→pages/posadas/posadas.routes.ts, más los*.routes.tspor área (precios, catálogos, staff, agendas, turnos, especialistas, control PAMI). - Para declarar un path se usa
template(...); para navegar,renderPath(...). Nunca strings a mano. - Todo es lazy (
loadComponent/loadChildren). Eldata.titlede cada ruta alimenta el título de la página. - El menú se arma como un
computedy cada ítem se gatea por permiso. Ver Permisos y roles.
Convenciones de una pantalla nueva
- Declarar el path en el
createRoutesque corresponda, con suloadComponenty sudata.title. - Sumar el ítem al menú gateado por permiso, y el permiso al catálogo (back y front).
- Armar la vista con el molde de listado compartido y paginación server-side.
- Un
*.service.tspor feature al lado del componente, que devuelveObservable<ApiResponse<T>>.
Gotchas
- Las rutas con parámetro van después de las literales del mismo nivel, y entre hermanas la más
específica primero (
capitas/abmantes del shellcapitas;authorizations/requestsantes deauthorizations). Si no, la literal se matchea como parámetro. - La jerarquía de paths se aplanó en su momento (
patients/patients/*→patients/*) y no se dejaron redirects de compatibilidad: cualquier link viejo hardcodeado rompe. Todo lo que navegue tiene que usarrenderPath. - Toda tabla pagina en el servidor. Traer todo y paginar en cliente es un desvío: hay tablas de decenas de miles de filas.
- El loader de una tabla va dentro de la tabla, nunca el spinner global bloqueante — ese se reserva para acciones (guardar, borrar, exportar).
- Hay pantallas vivas pero con deuda de UI que conviene no copiar como molde: bots, reportes, onboarding, dashboard, control-pami y los detalles de episodio. Ver Código legacy.