Terrassa Presupuesto : menos de 500 € Publicado el 30/04/26
Descripción del proyecto
1. Contexto general
Se requiere desarrollar un sistema que automatice la asignación semanal del personal de enfermería y auxiliar de enfermería en un servicio de urgencias hospitalarias.
Actualmente, esta planificación se realiza manualmente sobre una plantilla física, lo que implica una inversión considerable de tiempo y aumenta la probabilidad de errores o distribuciones poco óptimas.
El objetivo es diseñar una herramienta que, a partir de unos datos de entrada sencillos, genere automáticamente una propuesta de distribución del personal en las distintas áreas del servicio.
2. Fuente de datos
El personal asignado a cada día se consulta a través de la aplicación corporativa Bold Work Planner.
Restricciones:
• No existe acceso a API ni posibilidad de integración directa.
• Por tanto, la carga de datos será manual o semimanual.
Propuesta:
• El usuario introducirá los datos en una plantilla sencilla (Excel o similar).
• Esta plantilla será el input del sistema.
3. Estructura del servicio
Las áreas a cubrir por ENFERMERIA son las siguientes:
• Nivel 0 (triaje) → 4 personas (variable según franja horaria)
• Nivel 1 → 4 personas (variable según franja horaria)
• Nivel 2 → 3 personas
• ABC (Área de Baja Complejidad) → 2 personas (variable según franja horaria)
• Cirugía → 1 persona
• Trauma → 1 persona
• Polivalente → 1 persona
• Refuerzo general → 1 persona (variable según franja horaria)
Las áreas a cubrir por AUXILIAR DE ENFERMERIA son las siguientes:
• Nivel 1 → 2 personas
• Nivel 2 → 2 personas
• Cirugía + Trauma → 1 persona
• Polivalente → 1 persona
• Refuerzo general → 1 persona
Notas:
• Algunas áreas tienen funciones específicas dentro de sus posiciones.
• La distribución puede variar según turno (mañana/tarde).
4. Tipos de turno (simplificación operativa)
Dado que existen múltiples horarios individuales, se propone agruparlos en tipos de turno:
• Turno Mañana (07:25–14:37)
• Turno largo (07:25–17:44)
• Turno largo invertido (11:23 – 21:37)
• Turno Tarde (14:25–21:37)
• Turno 12h (9:30 – 21:37)
• Turno MC (07:25 – 14:37 y 17:32 – 21:37)
• Turno C (17:32 – 21:37)
• Turno ABC 1 (10:30 – 17:30)
• Turno ABC 2 (12:00 – 22)
El sistema debe:
• Traducir estos turnos en disponibilidad por franjas horarias
• Gestionar solapes automáticamente
5. Restricciones del sistema
5.1 Restricciones por capacitación
• Algunos profesionales NO pueden trabajar en:
o Triaje (Nivel 0)
o Trauma (COT)
o Refuerzo general
• Condición:
o Para trabajar en estas áreas se requiere formación específica
• Matiz:
o Si una persona no puede hacer trauma, tampoco puede hacer triaje
5.2 Restricciones por experiencia
• En determinadas posiciones con responsabilidad (ej. salidas a emergencias), no pueden asignarse perfiles nuevos.
Ejemplo:
• En Nivel 2 existe una posición que implica salir a emergencias o en N1 existe una posición para bajar a hemodinamia, entre otras.
• Esta posición debe ser cubierta únicamente por personal experimentado
5.3 Restricciones operativas
• Cada área debe cubrir un número mínimo de profesionales
• Algunas áreas permiten cualquier perfil, otras no
• El sistema debe respetar estas condiciones en todo momento
5.4 Restricciones dinámicas (por horario)
• El número de profesionales en un área puede variar según la hora
• Ejemplo:
o Nivel 1:
Mañana temprano → 3 personas
A partir de 11:23 → 4 personas (entra refuerzo)
El sistema debe:
• Adaptar la asignación según disponibilidad real por franja horaria
6. Input esperado
Se propone una plantilla sencilla tipo:
Día Nombre Tipo de turno
Lunes Persona A Mañana
Lunes Persona B Refuerzo
Lunes Persona C Turno Largo
Opcional (recomendado):
• Añadir atributos del personal:
o Puede hacer triaje (sí/no)
o Puede hacer trauma (sí/no)
o Nivel de experiencia (nuevo, medio, veterano)
7. Output esperado
El sistema debe generar automáticamente:
• Asignación de cada profesional a un área
• Distribución por día y turno
• Identificación de roles especiales (ej. emergencias)
Formato deseado:
• Tabla clara tipo Excel o visual
• Fácilmente editable por el supervisor
8. Objetivo del sistema (optimización)
El sistema no solo debe cumplir restricciones, sino también:
• Repartir carga de trabajo de forma equilibrada
• Evitar asignar siempre a las mismas personas en áreas exigentes (Nivel 1)
• Mantener coherencia organizativa
9. Tecnología recomendada
Se recomienda implementar mediante:
• Python + librería de optimización:
o Google OR-Tools
Motivos:
• Permite modelar restricciones complejas
• Escalable y eficiente
• Solución estándar para problemas de asignación
10. Flujo de uso esperado
1. El supervisor consulta el personal en Bolt Work Planner
2. Introduce los datos en la plantilla (2–5 minutos)
3. Ejecuta el sistema
4. Obtiene una asignación automática
5. Realiza ajustes manuales si lo considera necesario
11. Objetivo final
Reducir significativamente el tiempo de planificación semanal y mejorar la calidad de las asignaciones, manteniendo flexibilidad para ajustes manuales.