Skip to main content

Oxitesa

Documentación interna para desarrolladores de Oxitesa, la plataforma de logística de oxigenoterapia y equipamiento médico domiciliario.

¿Qué hace el sistema?

Una obra social —típicamente PAMI— autoriza una prestación para un paciente. A partir de esa autorización se arma un remito, se carga en una hoja de ruta, un transportista lo lleva al domicilio, entrega y/o retira equipos, y el paciente firma. Todo el equipamiento se rastrea por número de serie o por cantidad, desde que entra al depósito hasta que vuelve.

  • Depósito (consola web): recibe mercadería, acepta remitos, reserva stock, arma hojas de ruta.
  • Transportista (BullStock): recibe la hoja de ruta, escanea seriales, entrega, retira y hace firmar — con o sin conexión.
  • Backoffice (consola web): pacientes, autorizaciones, vehículos, reportes, mensajería.

Los tres repos

RepoQué esStack
oxitesa-backendLa API y todos los workersNode 20 · TypeScript · Express (routing-controllers) · TypeORM sobre MySQL multi-esquema · Redis · RabbitMQ
oxitesa-frontConsola web (back-office)Angular 19 standalone · signals · PrimeNG 19 · Tailwind 3.4 · typesafe-routes
oxitec-mobile-appApp del transportista, BullStockReact 19 · React Native 0.81 · Expo SDK 54 · expo-router 6 · React Query 5 · expo-sqlite

Son repos git separados que viven en un mismo workspace. La autenticación de los tres es Clerk, con el template JWT jwt-oxitec.

El núcleo del negocio está en SQL, no en TypeScript

Cerrar un remito, aceptarlo, mover stock entre entidades y validar disponibilidad son stored procedures de MySQL. TypeScript arma el JSON de líneas, hace el CALL y traduce el error que vuelve. Es lo más contraintuitivo del sistema y lo primero que hay que entender antes de tocar cualquier cosa de remitos o stock — ver Stored procedures.

Por dónde empezar

Si sos…Leé, en este orden
Nuevo en el proyectoGlosarioFlujo del remitoVisión general de arquitectura
BackendBackendModelo de datosStored procedures
Frontend webEstructura del frontPantallas y ruteo
MobileVisión general de BullStockOffline-first
Vas a levantar todo localEntorno local

Cómo está organizada esta documentación

  • Arquitectura — modelo de proceso, capas del backend, módulos de feature, workers y colas.
  • Dominio — el vocabulario, el modelo de datos y el flujo del remito de punta a punta.
  • Stored procedures — el pipeline SQL de aceptación, cierre y movimiento de stock.
  • Frontend — convenciones de la consola web, componentes reutilizables y mapa de pantallas.
  • Mobile — arquitectura de BullStock, sincronización offline y estado de la migración de UI.
  • Autenticación — Clerk de punta a punta y el modelo de permisos y roles.
  • Integraciones — PAMI SII, WhatsApp y notificaciones push.
  • Operaciones — entorno local, testing, reportes y despliegue.
Documentación viva, en tres lugares
  • Este portal es la documentación conceptual y de onboarding: para entender el sistema.
  • El brain (oxitesa-backend/docs/brain-oxitesa/) es un vault de notas atómicas orientado a trabajo diario y a agentes de IA: "¿esto ya existe?", "¿cuál es el gotcha de X?".
  • docs/Obsidian/ del workspace es la bitácora por issue (ANF-XXX - fecha - Título.md): la historia de cada feature.

Si algo cambia en el código, actualizá el brain siempre y este portal cuando cambie el concepto.