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
| Repo | Qué es | Stack |
|---|---|---|
oxitesa-backend | La API y todos los workers | Node 20 · TypeScript · Express (routing-controllers) · TypeORM sobre MySQL multi-esquema · Redis · RabbitMQ |
oxitesa-front | Consola web (back-office) | Angular 19 standalone · signals · PrimeNG 19 · Tailwind 3.4 · typesafe-routes |
oxitec-mobile-app | App del transportista, BullStock | React 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.
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 proyecto | Glosario → Flujo del remito → Visión general de arquitectura |
| Backend | Backend → Modelo de datos → Stored procedures |
| Frontend web | Estructura del front → Pantallas y ruteo |
| Mobile | Visión general de BullStock → Offline-first |
| Vas a levantar todo local | Entorno 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.
- 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.