Sistema Biodata

Documentação de Integração — Autoagendamento Biodata (Lógica de Consulta)

março 3, 2026 - Documentação API

1) Visão geral

A integração funciona por encadeamento de consultas (listas) até chegar em disponibilidade (dia/hora) e, por fim, criação do agendamento.

A regra prática é:

  1. Consultar Convênios
  2. Consultar Unidades (opcionalmente filtrado por convênio)
  3. Consultar Tipos de agendamento (filtrado por convênio e/ou unidade)
  4. Consultar Especialidades médicas (filtrado por convênio, unidade e tipo)
  5. Consultar Profissionais (filtrado por convênio, unidade, tipo e especialidade)
  6. Consultar Dias disponíveis (filtrado por unidade, profissional e tipo)
  7. Consultar Horários disponíveis (filtrado por unidade, profissional, tipo e data)
  8. Criar o agendamento

2) Base URL e autenticação

Base URL:
https://apis.biodataweb.net/p1developer/biodataApp/agendaPaciente

Autenticação: Basic Auth

  • Usuário: a fornecer
  • Senha: a fornecer
    Header:
  • Authorization: Basic <base64(usuario:senha)>

3) Convenções

3.1 Parâmetro obrigatório

Todos os endpoints exigem:

  • idSAC (ex.: 1)

3.2 Parâmetros opcionais

Parâmetros em branco significam sem filtro.


4) Endpoints e dependências

4.1 Listar Convênios

GET /listarConvenios

Parâmetros relevantes (além de idSAC):

  • convenioId, convenio
  • unidadeId, profissionalId
  • inativo, modalidade
  • naoListarWeb, retornaConfiguracao
  • paginacao, field

Saída esperada: lista de convênios com seus identificadores (ex.: convenioId e descrição).


4.2 Listar Unidades

GET /listarUnidades

Parâmetros relevantes:

  • convenioId (quando desejar restringir unidades por convênio)
  • unidadeId, unidade
  • paginacao

Dependência: opcionalmente depende do convenioId escolhido.


4.3 Listar Tipos de Agendamento

GET /listarTiposagendamento

Parâmetros relevantes:

  • unidadeId
  • convenioId
  • tipoAgendamentoId, tipoAgendamento
  • paginacao

Dependência: normalmente depende de unidadeId e/ou convenioId.


4.4 Listar Especialidades Médicas

GET /listarEspecialidadesMedicas

Parâmetros relevantes:

  • unidadeId
  • convenioId
  • tipoAgendamentoId
  • especialidadeMedicaId, especialidadeMedica
  • paginacao

Dependência: normalmente depende de unidadeId, convenioId e tipoAgendamentoId.


4.5 Listar Profissionais

GET /listarProfissionais

Parâmetros relevantes:

  • convenioId
  • unidadeId
  • tipoAgendamentoId
  • especialidadeMedicaId
  • profissionalId, profissional
  • paginacao

Dependência: normalmente depende de convenioId, unidadeId, tipoAgendamentoId, especialidadeMedicaId.


4.6 Listar Agenda por Dia

GET /listarAgendaDia

Parâmetros relevantes:

  • unidadeId (necessário)
  • profissionalId (necessário)
  • tipoAgendamentoId (necessário)
  • paginacao

Dependência: requer seleção anterior de:

  • unidadeId, profissionalId, tipoAgendamentoId

Objetivo: retornar quais dias possuem agenda/disponibilidade para o conjunto selecionado.


4.7 Listar Agenda por Hora

GET /listarAgendaHora

Parâmetros relevantes:

  • unidadeId (necessário)
  • profissionalId (necessário)
  • tipoAgendamentoId (necessário)
  • dataAgendamento (necessário)
  • paginacao

Dependência: requer:

  • unidadeId, profissionalId, tipoAgendamentoId e um dia selecionado via listarAgendaDia.

Objetivo: retornar horários disponíveis do dia escolhido.


4.8 Criar Agendamento

POST /criar

Campos informados:

  • idSAC (obrigatório)
  • profissionalId (vindo de listarProfissionais)
  • especialidadeMedicaId (vindo de listarEspecialidadesMedicas)
  • convenioId (vindo de listarConvenios)
  • planoId (padrão informado: -1 quando não houver plano)
  • tipoAgendamentoId (vindo de listarTiposagendamento)
  • unidadeId (vindo de listarUnidades)
  • dataAgendamento (vindo da escolha final em listarAgendaHora)
  • Dados do paciente:
    • agenda (nome do paciente)
    • cpf
    • dataNascimento
    • telefone / celular
    • email
    • observacao (opcional)

Dependência (mínima):
Para criar com consistência, o fluxo deve ter capturado:

  • unidadeId
  • convenioId
  • tipoAgendamentoId
  • especialidadeMedicaId
  • profissionalId
  • dataAgendamento (com a hora escolhida)

5) Fluxo de referência (ordem recomendada)

  1. /listarConvenios?idSAC=1
  2. /listarUnidades?idSAC=1&convenioId={convenioId}
  3. /listarTiposagendamento?idSAC=1&unidadeId={unidadeId}&convenioId={convenioId}
  4. /listarEspecialidadesMedicas?idSAC=1&unidadeId={unidadeId}&convenioId={convenioId}&tipoAgendamentoId={tipoAgendamentoId}
  5. /listarProfissionais?idSAC=1&unidadeId={unidadeId}&convenioId={convenioId}&tipoAgendamentoId={tipoAgendamentoId}&especialidadeMedicaId={especialidadeMedicaId}
  6. /listarAgendaDia?idSAC=1&unidadeId={unidadeId}&profissionalId={profissionalId}&tipoAgendamentoId={tipoAgendamentoId}
  7. /listarAgendaHora?idSAC=1&unidadeId={unidadeId}&profissionalId={profissionalId}&tipoAgendamentoId={tipoAgendamentoId}&dataAgendamento={YYYY-MM-DD}
  8. POST /criar com os IDs e dados do paciente

6) Exemplos (cURL)

6.1 Profissionais

curl -X GET "https://apis.biodataweb.net/p1developer/biodataApp/agendaPaciente/listarProfissionais?idSAC=1&unidadeId=2&convenioId=10&tipoAgendamentoId=3&especialidadeMedicaId=8" \
-H "Authorization: Basic <BASE64(usuario:senha)>"

6.2 Horários do dia

curl -X GET "https://apis.biodataweb.net/p1developer/biodataApp/agendaPaciente/listarAgendaHora?idSAC=1&unidadeId=2&profissionalId=55&tipoAgendamentoId=3&dataAgendamento=2026-03-10" \
-H "Authorization: Basic <BASE64(usuario:senha)>"

6.3 Criar agendamento

curl -X POST "https://apis.biodataweb.net/p1developer/biodataApp/agendaPaciente/criar" \
-H "Authorization: Basic <BASE64(usuario:senha)>" \
-H "Content-Type: application/json" \
-d '{
"idSAC": 1,
"agenda": "João da Silva",
"profissionalId": 55,
"especialidadeMedicaId": 8,
"convenioId": 10,
"planoId": -1,
"tipoAgendamentoId": 3,
"unidadeId": 2,
"celular": "98999990000",
"dataAgendamento": "2026-03-10 14:20:00",
"dataNascimento": "1990-05-20",
"email": "joao@email.com",
"observacao": "",
"cpf": "12345678901"
}'