Skip to content

beatriz7227/Problema-da-Prioridade-de-Atendimento

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Priorização de Atendimento 🏥

Este repositório contém a solução para o Segundo Exercício-Programa (EP2) da disciplina ACH2002 - Introdução à Análise de Algoritmos (Segundo Semestre de 2025) na EACH-USP.

📋 Descrição do Projeto

O projeto simula a gestão de uma fila de triagem em uma unidade de pronto-atendimento. Assim, o objetivo é garantir que pacientes com riscos cumulativos maiores recebam atendimento prioritário, indo além da simples ordem de chegada e considerando a gravidade clínica, o tempo de espera e o direito a atendimento preferencial por lei. No caso, o programa lê um arquivo .csv contendo a lista de pacientes e gera uma lista ordenada para atendimento, seguindo regras de reclassificação e critérios de desempate.

⚙️ Regras de Processamento

Escalonamento:

Antes da ordenação final, pacientes que excedem o tempo limite de espera seguro para sua cor original são promovidos para o próximo nível de gravidade:

  • Laranja > 10 min ➔ Vermelho
  • Amarelo > 60 min ➔ Laranja
  • Verde > 120 min ➔ Amarelo
  • Azul > 240 min ➔ Verde (Nota: Cada paciente só pode ser escalonado uma única vez.)

Critérios de Ordenação:

A fila é organizada seguindo a seguinte hierarquia de prioridade:

  • Gravidade (Cor): Vermelho > Laranja > Amarelo > Verde > Azul.
  • Desempate (Vermelho/Laranja): Unicamente pelo tempo de espera (maior primeiro).
  • Atendimento Preferencial: Idoso, PCD, Gravida, Pessoa Obesa, Recem Nascido são atendidos antes de "N/A".
  • Tempo: Se persistir o empate, prioriza-se quem espera há mais tempo.

Implementação

O sistema foi desenvolvido em Linguagem C utilizando as seguintes estruturas e algoritmos:

  • Lista Sequencial Dinâmica: Implementação de uma struct para gerenciar a lista de pacientes com realocação dinâmica de memória (realloc) para garantir escalabilidade.
  • MergeSort: Utilização de um algoritmo de ordenação eficiente e estável, adaptado com uma função de comparação customizada para lidar com os múltiplos critérios de prioridade exigidos.
  • Manipulação de Arquivos: Leitura de arquivos .csv via strtok e escrita formatada para o arquivo de saída.

Como Rodar o Programa

  1. Compilação:
gcc ep.c -o EP
  1. Execução:
./EP pacientes.csv

📤 Formato de Saída

O programa gera um arquivo chamado OrdemDeAtendimentos.csv contendo a lista final de pacientes no mesmo formato da entrada, porém reclassificados e ordenados conforme as regras de triagem.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages