https://github.com/wesleywerikis/app-triagem
Trabalho Faculdade UniFil (Análise e Projeto de Algoritmos) com o seguinte tema: Sistema de Triagem de Pacientes
https://github.com/wesleywerikis/app-triagem
algorithms console-application data-structrues healthcare java java17 maven oop triage-system
Last synced: 11 days ago
JSON representation
Trabalho Faculdade UniFil (Análise e Projeto de Algoritmos) com o seguinte tema: Sistema de Triagem de Pacientes
- Host: GitHub
- URL: https://github.com/wesleywerikis/app-triagem
- Owner: wesleywerikis
- Created: 2025-09-11T17:11:48.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-09-11T17:44:14.000Z (8 months ago)
- Last Synced: 2025-09-11T20:18:44.458Z (8 months ago)
- Topics: algorithms, console-application, data-structrues, healthcare, java, java17, maven, oop, triage-system
- Language: Java
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🏥 App Triagem
Um sistema de **triagem médica** em **Java 17** (CLI) para cadastrar pacientes, priorizar por **nível de risco** e **alocar por especialidade**. O projeto demonstra **estruturas de dados**, **algoritmos** (fila com prioridade e backtracking) e **OOP**.
---
## ✨ Funcionalidades
- Cadastro de pacientes com dados pessoais e sintomas
- Níveis de risco (Emergência → Não urgente) com prioridade numérica
- Especialidades médicas (Clínico, Ortopedia, Cardiologia, Pediatria)
- **Fila de triagem** com prioridade por risco e ordem de chegada
- **Índice de pacientes** (hash) para busca por CPF
- **Backtracking** para alocar pacientes conforme capacidade por especialidade
- Interface simples via **console**
---
## 🛠️ Tecnologias
- **Java 17**
- **Maven**
- Paradigma **OOP**
- Estruturas de dados: lista/fila com prioridade, hash table
- Algoritmos: **Backtracking**
---
## 📂 Estrutura
```
src/
└── main/java/br/com/apptriagem
├── model/
│ ├── CaseData.java
│ ├── Patient.java
│ ├── TriageEntry.java
│ └── enums/
│ ├── RiskLevel.java
│ └── Specialty.java
├── service/
│ ├── Backtracking.java
│ ├── PatientIndex.java
│ └── TriageQueue.java
└── Main.java
```
---
## ▶️ Como executar
> Requisitos: **Java 17** e **Maven** instalados.
```bash
# 1) Clonar
git clone https://github.com/wesleywerikis/app-triagem.git
cd app-triagem
# 2) Compilar e executar (sem precisar alterar o pom)
mvn -q compile exec:java -Dexec.mainClass="br.com.apptriagem.Main"
```
Alternativa (se preferir empacotar):
```bash
mvn -q package
# Ajuste o nome do .jar se necessário
java -cp target/classes br.com.apptriagem.Main
```
---
## 🧭 Uso (menu)
Ao iniciar, o app mostra:
```
1) Cadastrar
2) Atender próximo
3) Alocar por especialidade (backtracking)
0) Sair
```
- **Cadastrar**: informa dados do paciente, sintomas, risco e especialidade → adiciona à fila e ao índice por CPF
- **Atender próximo**: remove o próximo da fila (maior prioridade) e o retira do índice
- **Alocar por especialidade**: informa capacidades por especialidade e CPFs a tentar alocar → aplica **backtracking** e exibe a distribuição
---
## 🧩 Principais classes
- `RiskLevel` (enum): níveis de risco com **prioridade numérica** e rótulos
- `Specialty` (enum): especialidades médicas do domínio
- `Patient`: dados pessoais (nome, CPF, telefone, endereço)
- `CaseData`: informações clínicas (sintomas, flags e anotações) + `RiskLevel` e `Specialty`
- `TriageEntry`: vínculo `Patient` ↔ `CaseData` com **ordem de chegada** (sequencial)
- `TriageQueue`: **fila com prioridade** por risco e tempo de chegada
- `PatientIndex`: **hash table** simples para buscar/remover por CPF
- `Backtracking`: **alocação** de pacientes por especialidade respeitando capacidades
- `Main`: interface de **console** e fluxo do menu
---
## 🧪 Ideias de testes manuais
- Cadastrar vários pacientes com riscos diferentes e conferir a ordem de atendimento
- Tentar cadastrar o mesmo CPF novamente (o índice bloqueia)
- Alocar com capacidades insuficientes (deve indicar “sem solução”)
- Alocar com capacidades suficientes e ver a distribuição por especialidade
---
## 🏷️ Topics (GitHub)
`java` `java17` `maven` `oop` `healthcare` `triage-system` `data-structures` `algorithms` `console-application`
---