Sistema inteligente para análise e interpretação automatizada de laudos laboratoriais, fornecendo insights médicos e recomendações de especialidades.
O Interpretador de Laudos Laboratoriais é uma aplicação web que utiliza técnicas de OCR, processamento de linguagem natural e regras médicas para analisar resultados de exames laboratoriais em formato PDF. O sistema identifica valores anômalos, classifica a severidade dos achados e sugere especialidades médicas apropriadas.
- 📄 Upload e análise de PDFs de laudos laboratoriais
- 🔍 Extração automática de valores usando OCR e regex
- 🧠 Análise inteligente com regras médicas especializadas
⚠️ Classificação de severidade dos achados (1-5)- 👨⚕️ Recomendação de especialidades médicas
- 📊 Interface web moderna e responsiva
- 🔄 API RESTful para integração
┌─────────────────┐ HTTP/JSON ┌─────────────────┐
│ │ ◄──────────────► │ │
│ Frontend Web │ │ Backend API │
│ (React + TS) │ │ (FastAPI) │
│ │ │ │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Serviços de │
│ Processamento │
│ │
│ • PDF Parser │
│ • Rule Engine │
│ • NLG System │
│ • Specialty AI │
└─────────────────┘
- FastAPI - Framework web moderno e rápido
- Python 3.8+ - Linguagem principal
- OCR - Extração de texto de PDFs
- Regex - Processamento de padrões laboratoriais
- Pydantic - Validação de dados
- React 18 - Biblioteca de interface
- TypeScript - Tipagem estática
- Axios - Cliente HTTP
- React Dropzone - Upload de arquivos
- CSS3 - Estilização moderna
InterpreteLabBR/
├── 📁 backend/ # API FastAPI
│ ├── main.py # Aplicação principal
│ └── services/ # Serviços de processamento
│ ├── pdf_parser.py # Extração de dados do PDF
│ ├── rule_engine.py # Motor de regras médicas
│ ├── specialty_selector.py # Seleção de especialidades
│ └── nlg.py # Geração de linguagem natural
├── 📁 frontend-web/ # Interface React
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── services/ # Serviços de API
│ │ ├── types/ # Tipos TypeScript
│ │ └── App.tsx # Componente principal
│ └── package.json
├── 📁 data/ # Dados de configuração
│ ├── patterns.csv # Padrões de extração
│ └── guideline_map.csv # Mapeamento de diretrizes
├── requirements-backend.txt # Dependências Python
├── .env.example # Variáveis de ambiente
└── README.md # Este arquivo
- Python 3.8+
- Node.js 18+
- npm ou yarn
- Clone o repositório
git clone https://github.com/seu-usuario/InterpreteLabBR.git
cd InterpreteLabBR- Instale as dependências
pip install -r requirements-backend.txt- Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env conforme necessário- Execute o servidor
cd backend
python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000- Navegue para o diretório frontend
cd frontend-web- Instale as dependências
npm install- Execute o servidor de desenvolvimento
npm start- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Documentação da API: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
Verifica o status da API
Resposta:
{
"status": "healthy",
"message": "Interpretador de Laudos Laboratoriais está funcionando!"
}Analisa um laudo laboratorial
Parâmetros:
file: Arquivo PDF do laudo (multipart/form-data)genero: Gênero do paciente ("masculino" ou "feminino")idade: Idade do paciente (número)
Resposta:
{
"lab_findings": [
{
"analito": "Hemoglobina",
"valor": 10.5,
"resultado": "Baixo",
"severidade": 3,
"especialidade": "Hematologia",
"descricao_achado": "Anemia moderada",
"diretriz": "Investigar causa da anemia"
}
],
"recommended_specialties": ["Hematologia", "Clínica Médica"],
"patient_briefing": "Resumo dos achados para o paciente..."
}A interface web oferece:
- 📤 Upload intuitivo com drag & drop
- 👤 Formulário de paciente (gênero e idade)
- ⚡ Status da API em tempo real
- 📊 Visualização de resultados organizada
- 📱 Design responsivo para mobile
- 🎯 Feedback visual durante o processamento
- Acesse http://localhost:3000
- Faça upload de um PDF de laudo laboratorial
- Preencha os dados do paciente (gênero e idade)
- Clique em "Analisar Laudo"
- Visualize os resultados organizados por:
- Achados laboratoriais com severidade
- Especialidades recomendadas
- Briefing para o paciente
O sistema processa os laudos através de:
- Extração OCR - Converte PDF em texto
- Regex Patterns - Identifica valores laboratoriais
- Rule Engine - Aplica regras médicas especializadas
- Classificação - Determina severidade (1-5)
- NLG - Gera descrições em linguagem natural
- Specialty AI - Recomenda especialidades médicas
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Desenvolvido com ❤️ para auxiliar pacientes na interpretação de seus laudos laboratoriais.
⭐ Se este projeto foi útil, considere dar uma estrela!