erp-clinicas/docs/08-epicas/EPIC-CL-007-farmacia.md

240 lines
8.1 KiB
Markdown

# EPICA: EPIC-CL-007 - Farmacia
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | EPIC-CL-007 |
| **Nombre** | Farmacia |
| **Modulo** | farmacia |
| **Fase** | Fase 1 - MVP |
| **Prioridad** | P1 (Alto) |
| **Estado** | Backlog |
| **Story Points** | 40 |
| **Sprint(s)** | Sprint 7-8 |
---
## Descripcion
Gestión de farmacia clínica. Control de inventario de medicamentos, surtido de recetas, dispensación, control de caducidades, medicamentos controlados y punto de venta de farmacia.
---
## Objetivo de Negocio
- Control de inventario de medicamentos
- Surtido rápido de recetas
- Evitar merma por caducidad
- Cumplimiento de medicamentos controlados
- Rentabilidad de farmacia
---
## Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-CL007-001 | Como farmacéutico, quiero ver recetas pendientes de surtir | P0 | 3 | Backlog |
| US-CL007-002 | Como farmacéutico, quiero verificar stock antes de surtir | P0 | 3 | Backlog |
| US-CL007-003 | Como farmacéutico, quiero dispensar medicamentos registrando lote | P0 | 5 | Backlog |
| US-CL007-004 | Como farmacéutico, quiero cobrar la receta surtida | P0 | 5 | Backlog |
| US-CL007-005 | Como farmacéutico, quiero recibir mercancía de proveedor | P0 | 5 | Backlog |
| US-CL007-006 | Como farmacéutico, quiero ver alertas de medicamentos próximos a caducar | P0 | 3 | Backlog |
| US-CL007-007 | Como farmacéutico, quiero registrar salidas de medicamentos controlados | P0 | 5 | Backlog |
| US-CL007-008 | Como admin, quiero ver reporte de ventas de farmacia | P1 | 3 | Backlog |
| US-CL007-009 | Como admin, quiero realizar inventario físico de medicamentos | P1 | 5 | Backlog |
| US-CL007-010 | Como admin, quiero configurar márgenes de ganancia por categoría | P2 | 3 | Backlog |
**Total Story Points:** 40 SP
---
## Flujo de Dispensación
```
┌─────────────┐
│ RECETA │ ← Receta electrónica del médico
└──────┬──────┘
┌─────────────┐
│ VERIFICAR │ ← Verificar stock disponible
│ STOCK │
└──────┬──────┘
├── No hay stock ──► Notificar faltante
┌─────────────┐
│ PREPARAR │ ← Tomar medicamentos de anaquel
└──────┬──────┘
┌─────────────┐
│ VERIFICAR │ ← Doble chequeo
└──────┬──────┘
┌─────────────┐
│ COBRAR │ ← Proceso de pago
└──────┬──────┘
┌─────────────┐
│ ENTREGAR │ ← Dispensar al paciente
└─────────────┘
```
---
## Control de Medicamentos
```
┌─────────────────────────────────────────────────────────┐
│ CONTROL DE INVENTARIO │
├─────────────────────────────────────────────────────────┤
│ │
│ TRAZABILIDAD │
│ ├── Código de producto │
│ ├── Lote │
│ ├── Fecha de caducidad │
│ ├── Proveedor │
│ └── Fecha de entrada │
│ │
│ ALERTAS DE CADUCIDAD │
│ ├── 🔴 Caducados (vencidos) │
│ ├── 🟠 < 30 días para vencer │
│ ├── 🟡 < 90 días para vencer │
│ └── Sugerencia: Promoción o devolución │
│ │
│ MEDICAMENTOS CONTROLADOS │
│ ├── Libro de registro (físico y digital) │
│ ├── Receta foliada obligatoria │
│ ├── Control de existencias exactas │
│ ├── Auditoría de movimientos │
│ └── Reportes para COFEPRIS │
│ │
└─────────────────────────────────────────────────────────┘
```
---
## Criterios de Aceptacion de la Epica
**Funcionales:**
- [ ] Ver recetas pendientes
- [ ] Verificar stock
- [ ] Dispensar con lote y caducidad
- [ ] Cobro de receta
- [ ] Recepción de mercancía
- [ ] Alertas de caducidad
- [ ] Control de medicamentos controlados
- [ ] Inventario físico
**No Funcionales:**
- [ ] Dispensación < 3 minutos
- [ ] Trazabilidad 100% de lotes
- [ ] Cumplimiento COFEPRIS
**Tecnicos:**
- [ ] Integración con recetas
- [ ] Integración con facturación
- [ ] Lector de código de barras
- [ ] Reportes para autoridades
---
## Dependencias
**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| EPIC-CL-001 Fundamentos | Backlog | Si |
| EPIC-CL-005 Recetas | Backlog | Si |
**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| EPIC-CL-008 Facturación | Ventas de farmacia |
---
## Desglose Tecnico
**Database:**
- [ ] Schema: `pharmacy`
- [ ] Tablas: 8 (products, stock, stock_movements, dispensations, dispensation_items, controlled_log, suppliers, physical_counts)
- [ ] Funciones: 3 (check_expiry, update_stock, log_controlled)
- [ ] Indices: Por producto, lote, caducidad, proveedor
**Backend:**
- [ ] Modulo: `pharmacy`
- [ ] Entities: 6 (Product, Stock, StockMovement, Dispensation, DispensationItem, ControlledLog)
- [ ] Endpoints: 15
- [ ] Tests: 30
**Frontend:**
- [ ] Paginas: 5 (PendingPrescriptions, Dispensation, Inventory, ExpiryAlerts, ControlledLog)
- [ ] Componentes: 12 (PrescriptionCard, StockChecker, BarcodeScanner, ExpiryCalendar, etc.)
- [ ] Stores: 1 (pharmacyStore)
---
## Endpoints API
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /api/pharmacy/prescriptions/pending | Recetas pendientes |
| GET | /api/pharmacy/stock/:productId | Verificar stock |
| POST | /api/pharmacy/dispensations | Registrar dispensación |
| POST | /api/pharmacy/receipts | Recibir mercancía |
| GET | /api/pharmacy/expiry-alerts | Alertas de caducidad |
| POST | /api/pharmacy/controlled-log | Registrar movimiento controlado |
| POST | /api/pharmacy/physical-count | Inventario físico |
| GET | /api/pharmacy/reports/sales | Reporte de ventas |
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Merma por caducidad | Media | Medio | Alertas tempranas |
| Error en dispensación | Baja | Alto | Doble verificación |
| Faltantes de controlados | Baja | Alto | Auditorías frecuentes |
---
## Definition of Ready (DoR)
- [x] Historias de usuario definidas
- [x] Criterios de aceptacion claros
- [x] Dependencias identificadas
- [x] Estimacion completada
- [ ] Catálogo de medicamentos definido
- [ ] Proceso de controlados documentado
## Definition of Done (DoD)
- [ ] Flujo de dispensación funcionando
- [ ] Control de lotes y caducidad
- [ ] Registro de controlados
- [ ] Alertas de caducidad activas
- [ ] Tests de integración pasando
- [ ] Documentación de API
---
## Historial
| Fecha | Cambio | Autor |
|-------|--------|-------|
| 2025-12-08 | Creacion de epica | Claude-Agent |
---
**Creada por:** Claude-Agent
**Fecha:** 2025-12-08
**Ultima actualizacion:** 2025-12-08