clinica-veterinaria/docs/01-epicas/VET-004-hospitalizacion.md
rckrdmrd c461208a51 [SPRINT-7] docs: Agregar documentacion, schemas y reportes
- Epicas documentadas
- Schema de farmacia veterinaria
- Inventario de base de datos
- Reporte de ejecucion Sprint 7

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:42 -06:00

275 lines
8.7 KiB
Markdown

# VET-004: Hospitalizacion
## Metadata
- **Codigo:** VET-004
- **Modulo:** Hospitalizacion
- **Prioridad:** P1
- **Estado:** DDL Completado
- **Fase:** 3 - Hospitalizacion
## Descripcion
Sistema de gestion de hospitalizacion veterinaria: ingreso de pacientes, asignacion de espacios (jaulas/kennels), monitoreo de signos vitales, administracion de medicamentos, y proceso de alta.
## Objetivos
1. Registro de ingresos
2. Asignacion de espacios
3. Monitoreo periodico
4. Control de medicamentos
5. Proceso de alta
## Alcance
### Incluido
- Ingreso con diagnostico inicial
- Asignacion de jaula/kennel/UCI
- Monitoreo cada X horas (configurable)
- Registro de signos vitales
- Estado de alimentacion/eliminacion
- Notas de evolucion
- Alta con instrucciones
- Costos acumulados
### Excluido
- Sensores automaticos
- Camaras de vigilancia
- Sistema de ventiladores/temperatura
## Estados de Hospitalizacion
```
ingresado ──► en_tratamiento ──► estable ──► alta
├──► critico
└──► fallecido
```
| Estado | Descripcion | Acciones |
|--------|-------------|----------|
| ingresado | Recien llegado | Evaluacion inicial |
| en_tratamiento | Recibiendo cuidados | Monitoreo activo |
| estable | Mejorando | Reducir monitoreo |
| critico | Grave | Monitoreo intensivo |
| alta | Dado de alta | Cerrar expediente |
| fallecido | Fallecio | Registro de deceso |
## Modelo de Datos
### Tablas
**veterinaria.hospitalizacion**
- id, tenant_id, mascota_id, veterinario_id
- consultation_id
- fecha_ingreso, motivo_ingreso, diagnostico_ingreso
- area, numero_jaula
- estado
- fecha_alta, diagnostico_alta, instrucciones_alta
**veterinaria.hospitalizacion_monitoreo**
- id, tenant_id, hospitalizacion_id
- fecha_hora
- peso_kg, temperatura
- frecuencia_cardiaca, frecuencia_respiratoria
- comio, bebio_agua, orino, defeco
- consistencia_heces, estado_animo
- nivel_dolor (0-10)
- observaciones, registrado_por
## Signos Vitales Normales
| Especie | Temperatura | FC | FR |
|---------|-------------|-----|-----|
| Canino | 38-39°C | 60-120 lpm | 10-30 rpm |
| Felino | 38-39°C | 120-180 lpm | 20-40 rpm |
| Conejo | 38.5-40°C | 130-325 lpm | 30-60 rpm |
## Endpoints API
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /hospitalizacion | Pacientes hospitalizados |
| GET | /hospitalizacion/:id | Detalle |
| POST | /hospitalizacion | Ingresar paciente |
| PUT | /hospitalizacion/:id | Actualizar |
| PUT | /hospitalizacion/:id/alta | Dar de alta |
| GET | /hospitalizacion/:id/monitoreos | Historial monitoreos |
| POST | /hospitalizacion/:id/monitoreos | Registrar monitoreo |
| GET | /hospitalizacion/espacios | Disponibilidad jaulas |
| PUT | /hospitalizacion/:id/espacio | Cambiar espacio |
## Interfaz del Servicio
```typescript
interface HospitalizacionService {
getActivos(): Promise<Hospitalizacion[]>;
getById(id: string): Promise<Hospitalizacion>;
ingresar(data: IngresoHospitalizacion): Promise<Hospitalizacion>;
darAlta(id: string, data: AltaHospitalizacion): Promise<Hospitalizacion>;
registrarMonitoreo(hospId: string, data: Monitoreo): Promise<Monitoreo>;
getMonitoreos(hospId: string): Promise<Monitoreo[]>;
getEspaciosDisponibles(): Promise<Espacio[]>;
}
interface IngresoHospitalizacion {
mascotaId: string;
veterinarioId: string;
consultationId?: string;
motivoIngreso: string;
diagnosticoIngreso?: string;
area: string;
numeroJaula?: string;
}
interface Monitoreo {
fechaHora: Date;
pesoKg?: number;
temperatura?: number;
frecuenciaCardiaca?: number;
frecuenciaRespiratoria?: number;
comio: boolean;
bebioAgua: boolean;
orino: boolean;
defeco: boolean;
consistenciaHeces?: string;
estadoAnimo?: string;
nivelDolor?: number;
observaciones?: string;
}
```
## Flujos
### Ingresar Paciente
```
1. Veterinario decide hospitalizar
2. Crear registro de hospitalizacion:
- Motivo de ingreso
- Diagnostico inicial
- Indicaciones
3. Verificar disponibilidad de espacios
4. Asignar jaula/kennel
5. Registrar monitoreo inicial
6. Notificar a propietario
7. Configurar frecuencia de monitoreo
```
### Monitoreo Periodico
```
Cada X horas (configurable por estado):
1. Auxiliar va a jaula
2. Pesar mascota (si aplica)
3. Tomar temperatura
4. Registrar signos vitales
5. Verificar alimentacion/eliminacion
6. Evaluar estado de animo y dolor
7. Notas de observacion
8. Guardar en sistema
9. Alertar si valores anormales
```
### Dar de Alta
```
1. Veterinario evalua condicion
2. Decide dar de alta
3. Registrar diagnostico final
4. Escribir instrucciones para propietario
5. Cambiar estado a "alta"
6. Generar resumen de hospitalizacion
7. Calcular costos totales
8. Notificar a propietario
9. Liberar espacio
```
## Panel de Control
```
┌─────────────────────────────────────────────────────────┐
│ HOSPITALIZACION - Panel de Control │
├─────────────────────────────────────────────────────────┤
│ Jaulas Pequenas (8) │ ■ ■ ■ ■ ■ □ □ □ │
│ Jaulas Grandes (4) │ ■ ■ □ □ │
│ UCI (2) │ ■ □ │
│ Kennels (6) │ ■ ■ ■ □ □ □ │
├─────────────────────────────────────────────────────────┤
│ ■ = Ocupado □ = Disponible │
├─────────────────────────────────────────────────────────┤
│ PACIENTES ACTIVOS │
│ ┌─────────────────────────────────────────────────────┐
│ │ 🐕 Firulais (J-03) | Ingreso: 05/01 | ESTABLE │
│ │ Ultimo monitoreo: hace 2 horas │
│ ├─────────────────────────────────────────────────────┤
│ │ 🐈 Michi (J-07) | Ingreso: 06/01 | EN_TRATAMIENTO │
│ │ Ultimo monitoreo: hace 4 horas ⚠️ │
│ ├─────────────────────────────────────────────────────┤
│ │ 🐕 Rocky (UCI-01) | Ingreso: 07/01 | CRITICO │
│ │ Ultimo monitoreo: hace 30 min │
│ └─────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────┘
```
## Frecuencia de Monitoreo
| Estado | Frecuencia |
|--------|------------|
| critico | Cada 1-2 horas |
| en_tratamiento | Cada 4 horas |
| estable | Cada 8 horas |
| ingresado | Evaluacion inicial |
## Costos de Hospitalizacion
```typescript
interface CostosHospitalizacion {
diasInternado: number;
costoPorDia: number;
medicamentos: CostoMedicamento[];
procedimientos: CostoProcedimiento[];
estudios: CostoEstudio[];
subtotal: number;
descuento?: number;
total: number;
}
```
## Entregables
| Entregable | Estado | Archivo |
|------------|--------|---------|
| DDL hospitalizacion | Completado | `database/schemas/01-veterinaria-schema-ddl.sql` |
| DDL monitoreo | Completado | `database/schemas/01-veterinaria-schema-ddl.sql` |
| hospitalizacion.module.ts | Pendiente | `backend/modules/hospitalizacion/` |
| HospitalizacionPanel.tsx | Pendiente | `frontend/components/` |
| MonitoreoForm.tsx | Pendiente | `frontend/components/` |
| EspaciosGrid.tsx | Pendiente | `frontend/components/` |
## Dependencias
### Depende de
- VET-001 (Mascotas)
- clinica.consultations (erp-clinicas)
- clinica.doctors (erp-clinicas)
### Bloquea a
- Reportes de ocupacion
- Dashboard gerencial
## Criterios de Aceptacion
- [ ] Ingreso de pacientes funciona
- [ ] Asignacion de espacios
- [ ] Monitoreo se registra
- [ ] Estados se actualizan
- [ ] Alta genera resumen
- [ ] Panel muestra ocupacion
- [ ] Alertas de monitoreo vencido
- [ ] Costos se calculan
---
**Ultima actualizacion:** 2026-01-07