Montar uma agenda de enfermagem, de todas as indústrias nas quais as necessidades de agendamento de pessoal estão altamente envolvidas e sofisticadas, é uma liga à parte em termos dos obstáculos que são colocados aos agendadores.
Os modelos de cronograma de enfermagem são especialmente difíceis de encontrar em um setor onde há uma escassez crônica de trabalhadores e a cobertura é necessária 24 horas por dia, sete dias por semana.
Os gerentes estão lidando com uma mistura de enfermeiros de meio período e período integral com diferentes conjuntos de habilidades e qualificações. E, além de todas as dificuldades práticas, há mais um fator que torna crítica a criação de cronogramas excepcionais: o atendimento ao paciente.
Não é fácil criar um modelo de agendamento de enfermagem que atenda a todos esses requisitos, mas há algumas coisas que você pode fazer para melhorar seu processo de agendamento de turnos. Aqui é onde você deve começar.
Implementando o problema de agendamento da enfermeira
Um supervisor hospitalar deve desenvolver um cronograma de três dias para quatro enfermeiros, de acordo com as seguintes condições:
- Cada dia é dividido em três turnos de oito horas cada.
- Todos os dias, um único enfermeiro é designado para cada turno e nenhum enfermeiro trabalha mais de um turno por vez.
- Durante o período de três dias, cada enfermeiro é alocado em pelo menos dois turnos.
As partes a seguir propõem uma solução para o problema de agendamento de enfermeiros.
1. Importando Bibliotecas
O código abaixo importa a biblioteca necessária.
2. Dados
O código a seguir cria dados fictícios para trabalhar nesse problema.
3. Criando modelo
O código a seguir cria um modelo.
4. Criando variáveis
O código abaixo cria um array de variáveis para o problema. A matriz define as atribuições de turno para os enfermeiros:
Se o turno s for alocado para a enfermeira n no dia d, turnos[(n, d, s)] = 1, caso contrário é igual a 0.
5. Atribuição de turnos aos enfermeiros
Em seguida, vamos ilustrar como alocar enfermeiros para turnos, mantendo o seguinte em mente:
- Todos os dias, apenas um enfermeiro é designado para cada turno.
- Cada enfermeira faz no máximo um turno por dia.
De acordo com o código da primeira condição, a soma dos enfermeiros alocados em cada turno é um.
Aqui está o código que diz que cada enfermeira só pode trabalhar um turno por dia. O número total de turnos atribuídos a cada enfermeira é limitado a um (“no máximo” porque uma enfermeira pode ter o dia de folga).
6. Atribuindo turnos uniformemente
Depois disso, mostraremos a você como distribuir os turnos entre os enfermeiros da maneira mais equitativa possível. Podemos dar dois turnos para cada uma das quatro enfermeiras porque são nove turnos durante o período de três dias.
Haverá um turno restante depois disso, que pode ser alocado a qualquer enfermeiro. No período de três dias, o código a seguir garante que cada enfermeiro faça pelo menos dois turnos.
7. Atualização dos parâmetros do solver
Você pode permitir a busca de todas as soluções em um modelo de não otimização.
8. Registre um retorno de chamada
No solver, você deve registrar um callback que será chamado em cada solução.
9. Inicie um solucionador
O código abaixo executa o solver e exibe os primeiros cinco resultados.
10. Resultados finais
Aqui está o resultado final do agendamento da enfermeira.
Conclusão
Um dos problemas mais difíceis na gestão da força de trabalho é o agendamento de enfermeiros. Embora possa parecer contra-intuitivo incluir os enfermeiros como atores ativos no processo, isso pode realmente reduzir o estresse e ajudar na criação de um modelo de cronograma de enfermagem útil que pode ser reutilizado com pequenas alterações.
Lembre-se de que a tecnologia é sua aliada e que existem soluções especializadas disponíveis para os desafios de agendamento de pessoal. Embora possa parecer mais fácil permanecer com métodos testados e comprovados, sua ineficácia representa o maior risco de todos – tanto para pacientes quanto para enfermeiros.
Deixe um comentário