📃 Coleta por lista
🔍 O que é?
Dentro da CLI
existem duas principais funções responsáveis por coletar as medicações nos bins que imaginamos que podem ser utilizadas durante o desenvolvimento do projeto. Neste documento, vamos apresentar a coleta por lista
.
🤔 Como funciona?
A ideia principal é que nosso código receba uma lista desordenada contendo apenas os números dos bins que precisam ser coletados. Por exemplo, se houver uma requisição de 2 remédios do bin 1
e 3 remédios do bin 5
, a lista pode chegar de diversas formas dependendo da forma que for processada pelo sistema do hospital. Alguns exemplos são:
[5, 1, 1, 5, 5]
[1, 5, 1, 5, 5]
[5, 5, 1, 1, 5]
Pensando nessa possibilidade, desenvolvemos um código que organiza a lista enviada para ele e, em seguida, inicia a coleta de cada bin.
@cli.command()
def collect_list(input_list: Annotated[List[str], typer.Argument(help="Lista dos bins a coletar")]):
global deliver_value
deliver_value = 1
main()
positions = data.get('home')
ordered_list = sorted(input_list)
for bin_num in ordered_list:
take_medicine(f'bin_{bin_num}', bin_num)
execute_movement(positions[0])
O código recebe a lista dos bins que precisam ser coletados, utiliza o método sorted()
do Python para organizá-los em ordem crescente e, em seguida, executa um for
para coletar todos os medicamentos solicitados, enviando os valores da lista para a função take_medicine()
por meio do sistema de f-string
, que permite inserirmos valores dentro de uma string
.
📋 Testes
Para comprovar a viabilidade desse código, realizamos um teste enviando a seguinte lista de valores para ele: [5, 3, 1, 4, 2, 2, 3]
Vídeo demonstrando o teste:
✅ Conclusão
A utilização da CLI em conjunto com o código desenvolvido para organizar e coletar medicamentos a partir de uma lista desordenada demonstra ser uma solução eficiente e adaptável ao fluxo operacional do projeto. Essa abordagem não só comprova a viabilidade técnica da solução proposta, como também reforça sua aplicabilidade para resolver o problema de coleta automatizada em ambientes hospitalares, garantindo maior organização e confiabilidade no processo.