Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RadAI

Java Spark PostgreSQL Azure Docker License

Sistema web para análise automatizada de fraturas ósseas em radiografias, utilizando Inteligência Artificial via Azure Custom Vision.


Sobre o Projeto

Fraturas ósseas muitas vezes passam despercebidas em radiografias quando analisadas manualmente sob pressão de tempo. O RadAI automatiza essa triagem: o médico envia a imagem do raio-X e o sistema retorna instantaneamente se há indício de fratura, o nível de confiança da análise e se o caso precisa de revisão humana.

Este projeto foi desenvolvido como trabalho acadêmico na PUC Minas (2022), nas disciplinas orientadas pelas professoras Luciana Mara Freitas Diniz e Ilo Amy Saldanha Rivero.


Funcionalidades

  • ✅ Autenticação de usuários com senha criptografada (BCrypt)
  • ✅ Cadastro e listagem de pacientes
  • ✅ Agendamento e listagem de consultas
  • ✅ Upload de imagem de raio-X diretamente pelo portal médico
  • ✅ Análise automática de fraturas via Azure Custom Vision
  • ✅ Resultado com diagnóstico, confiança e flag de revisão humana
  • ✅ Deploy via Docker com suporte a variáveis de ambiente

Arquitetura

┌─────────────────────────────────────────────────┐
│                   NAVEGADOR                      │
│   login.html │ dashboard.html │ medico.html      │
└──────────────────────┬──────────────────────────┘
                       │ HTTP/REST  :8080
┌──────────────────────▼──────────────────────────┐
│            BACKEND  (Java 21 + Spark)            │
│  /login │ /pacientes │ /consultas │ /upload-raiox│
└──────────────┬────────────────────┬─────────────┘
               │                    │
  ┌────────────▼──────┐  ┌──────────▼──────────────┐
  │    PostgreSQL     │  │   Azure Custom Vision    │
  │  (dados clínicos) │  │   (análise de raio-X)    │
  └───────────────────┘  └─────────────────────────┘

Tecnologias

Tecnologia Versão Papel
Java 21 Linguagem do backend
Spark Framework 2.x Servidor HTTP embarcado
PostgreSQL 15 Banco de dados relacional
Sql2o Mapeamento SQL → objetos Java
BCrypt Hash de senhas
Gson Serialização JSON
Azure Custom Vision API v3 Modelo de IA para detecção de fraturas
Apache HttpClient Chamadas HTTP para a Azure
Bootstrap 5.3 Estilização do frontend
Docker Containerização e deploy

Pré-requisitos

Para rodar com Docker (recomendado):

  • Docker instalado
  • Banco PostgreSQL acessível (local ou na nuvem)
  • Chaves do Azure Custom Vision (opcional — sem elas a análise de IA retorna erro)

Para rodar manualmente:

  • Java 21
  • Maven 3.9+
  • PostgreSQL 15

Como Rodar

Via Docker (recomendado)

# 1. Clone o repositório
git clone https://github.com/lucasjosee/RadAI.git
cd RadAI

# 2. Configure as variáveis de ambiente
cp .env.example .env
# Edite .env com suas credenciais

# 3. Build e run
cd Codigo/backend
docker build -t radai .
docker run -p 8080:8080 --env-file ../../.env radai

Acesse: http://localhost:8080/login.html


Via Maven (manual)

# 1. Clone e entre na pasta do backend
git clone https://github.com/lucasjosee/RadAI.git
cd RadAI/Codigo/backend

# 2. Configure as variáveis de ambiente
export DB_URL=jdbc:postgresql://localhost:5432/saas_raiox
export DB_USER=postgres
export DB_PASS=sua_senha
export AZURE_URL=https://seu-endpoint...
export AZURE_KEY=sua_chave

# 3. Build e execute
mvn clean package -DskipTests
java -jar target/saas-raiox-0.0.1-SNAPSHOT.jar

Acesse: http://localhost:8080/login.html


Variáveis de Ambiente

Variável Obrigatória Padrão Descrição
PORT Não 8080 Porta do servidor
DB_URL Sim jdbc:postgresql://localhost:5432/saas_raiox JDBC URL do PostgreSQL
DB_USER Sim postgres Usuário do banco
DB_PASS Sim Senha do banco
AZURE_URL Sim* Endpoint do modelo Custom Vision
AZURE_KEY Sim* Chave de predição da Azure

*Sem as chaves Azure, o upload de raio-X retornará erro de IA.


Endpoints da API

Método Rota Descrição
POST /login Autentica usuário (email + senha)
POST /usuarios Cadastra novo usuário
GET /pacientes Lista todos os pacientes
POST /pacientes Cadastra novo paciente
GET /consultas-lista Lista todas as consultas
POST /consultas Agenda nova consulta
POST /upload-raiox Envia imagem e retorna análise de IA

Estrutura do Projeto

RadAI/
├── .env.example              # Template de variáveis de ambiente
├── CITATION.cff              # Metadados para citação acadêmica
├── LICENSE                   # Creative Commons BY 4.0
│
├── Codigo/
│   ├── backend/
│   │   ├── Dockerfile        # Build e deploy via Docker
│   │   ├── public/           # Frontend servido pelo Spark
│   │   │   ├── login.html
│   │   │   ├── dashboard.html
│   │   │   ├── medico.html
│   │   │   ├── cadastro.html
│   │   │   └── style.css
│   │   └── src/main/java/
│   │       ├── Main.java         # Servidor + rotas REST
│   │       ├── dao/              # Acesso ao banco de dados
│   │       ├── model/            # Entidades (Usuario, Paciente, Consulta)
│   │       └── service/
│   │           └── ServicoIA.java  # Integração com Azure Custom Vision
│   └── front/                # Cópia standalone do frontend
│
├── Divulgacao/
│   └── Apresentacao/         # PDFs das apresentações por Sprint
│
└── docs/                     # Documentação do projeto

Apresentações

Sprint Arquivo
Sprint 1 Sprint 1 - RadiIA.pdf
Sprint 2 Sprint 2.pdf

Autores e Orientadores

Aluno

  • Lucas José Souza Rodrigues

Orientadores — PUC Minas

  • Profª Luciana Mara Freitas Diniz
  • Prof. Ilo Amy Saldanha Rivero

Licença

Distribuído sob a licença Creative Commons Attribution 4.0 International (CC BY 4.0).

Você pode usar, adaptar e distribuir livremente, desde que cite os autores originais.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages