240 lines
8.1 KiB
Markdown
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
|