Skip to main content

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

RutaQué hace
patients/searchBuscador con pestañas Local y Sistema (padrón scrapeado), filtro por financiador, export a Excel
patients/altaABM del paciente
patients/bulk-searchBúsqueda masiva
patients/:patientIdDetalle: cápitas PAMI (read-only), credenciales, cartilla, teléfonos, documentos, comentarios

Episodios

RutaQué hace
patients/hospitalization/list · new · :idInternaciones: bandeja, alta y detalle
patients/ambulatory/list · new · :idAmbulatorio: bandeja, alta y detalle
patients/ome/listBandeja de OMEs
patients/bulk-ome-validationValidación masiva de OMEs

Autorizaciones

RutaQué hace
authorizationsBandeja de autorizaciones / OP
authorizations/requestsSolicitudes 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ú:

RutaQué hace
rules-findingsHallazgos: los posibles débitos detectados
rules-configReglas por financiador (ABM)
rules-practicesConfiguración de la práctica por financiador
rules-enablementsHabilitaciones (práctica → prácticas, módulo → módulos)
rules-nomencladoresNomencladores por financiador

Además hay un panel de hallazgos embebido en el detalle del episodio.

Configuración y catálogos

RutaQué hace
health-centers · /:idCentros médicos y sus líneas de atención
pricesPrecios / nomenclador del prestador
catalogsNomenclador (elementos y categorías)
staff · specialist · agendas · appointmentPersonal, servicios, agendas y turnos
document-typesTipos de documento (para la documentación adjunta)
reports · stats · dashboardReportes, estadísticas y tablero
control-pamiCuentas de control + su dashboard
botsEstado de los bots de scraping
notificacionesNotificaciones del sistema
onboardingAlta 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.tspages/private.routes.tspages/posadas/posadas.routes.ts, más los *.routes.ts por á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). El data.title de cada ruta alimenta el título de la página.
  • El menú se arma como un computed y cada ítem se gatea por permiso. Ver Permisos y roles.

Convenciones de una pantalla nueva

  1. Declarar el path en el createRoutes que corresponda, con su loadComponent y su data.title.
  2. Sumar el ítem al menú gateado por permiso, y el permiso al catálogo (back y front).
  3. Armar la vista con el molde de listado compartido y paginación server-side.
  4. Un *.service.ts por feature al lado del componente, que devuelve Observable<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/abm antes del shell capitas; authorizations/requests antes de authorizations). 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 usar renderPath.
  • 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.