Skip to content

Repository files navigation

Buscador de Pacientes - API Simples Dental

Este programa em Go busca todos os pacientes disponíveis na API do Simples Dental, paginando automaticamente através de todas as páginas disponíveis.

Como usar

1. Configurar o token de autenticação

export USUARIO_TOKEN="seu_token_aqui"

2. Buscar todos os pacientes

./run_fetch.sh seu_token_aqui

3. Converter para CSV (opcional)

./json_to_csv.sh

4. Compilar para executáveis (opcional)

# Buscador de pacientes
cd fetch && go build -o fetch_pacientes fetch_pacientes.go types.go

# Conversor JSON para CSV
cd convert && go build -o convert_csv convert_csv.go types.go

Funcionalidades

🔍 Busca de Pacientes

  • Paginação automática: Incrementa automaticamente o pageNumber até buscar todos os registros
  • Retry com backoff: Tenta novamente em caso de falha na requisição
  • Rate limiting: Pausa entre requisições para não sobrecarregar a API
  • Salvamento em JSON: Salva todos os dados em pacientes_completos.json
  • Logs detalhados: Mostra progresso da busca página por página
  • Tratamento de erros: Lida com falhas de rede e respostas inválidas

📊 Conversão para CSV

  • Conversão automática: Converte JSON para CSV formatado
  • Formatação de datas: Converte datas ISO para formato brasileiro (DD/MM/AAAA)
  • Limpeza de dados: Remove caracteres problemáticos para CSV
  • Progresso detalhado: Mostra progresso da conversão
  • Campos completos: Inclui todos os campos disponíveis dos pacientes

Configurações

Você pode modificar as seguintes configurações no código:

  • BaseURL: URL da API (padrão: https://api.simplesdental.com/pacientes)
  • PageSize: Tamanho da página (padrão: 100)
  • MaxRetries: Número máximo de tentativas (padrão: 3)
  • RetryDelay: Tempo de espera entre tentativas (padrão: 2 segundos)

Estrutura de dados

O programa espera que a API retorne dados no seguinte formato:

{
  "data": [
    {
      "id": 1,
      "nome": "Nome do Paciente",
      "email": "email@exemplo.com",
      "telefone": "11999999999"
    }
  ],
  "pageNumber": 1,
  "pageSize": 100,
  "totalPages": 10,
  "totalCount": 1000,
  "hasNext": true
}

Saída

Busca de Pacientes

  • Progresso página por página
  • Total de pacientes encontrados
  • Primeiros 3 pacientes como exemplo
  • Salva todos os dados em pacientes_completos.json

Conversão para CSV

  • Progresso da conversão (a cada 1000 registros)
  • Total de pacientes convertidos
  • Arquivo CSV com cabeçalhos em português
  • Datas formatadas no padrão brasileiro (DD/MM/AAAA)
  • Campos limpos e prontos para análise

Arquivos do Projeto

Scripts Principais

  • fetch/ - Diretório do buscador de pacientes
    • fetch_pacientes.go - Programa principal para buscar pacientes
    • types.go - Definições de tipos
    • go.mod - Módulo Go
  • convert/ - Diretório do conversor CSV
    • convert_csv.go - Conversor de JSON para CSV
    • types.go - Definições de tipos
    • go.mod - Módulo Go

Scripts de Execução

  • run_fetch.sh - Script bash para buscar pacientes
  • json_to_csv.sh - Script bash para converter JSON para CSV
  • test_api.sh - Script de teste da API

Documentação

  • README.md - Documentação completa do projeto
  • config.example - Exemplo de configuração
  • .gitignore - Arquivos ignorados pelo Git

Arquivos Gerados

  • pacientes_completos.json - Dados dos pacientes em JSON
  • pacientes_completos.csv - Dados dos pacientes em CSV

Requisitos

  • Go 1.21 ou superior
  • Token de autenticação válido da API
  • Acesso à internet para fazer requisições HTTP

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages