Pular para o conteúdo
Prescreva de onde estiver
Prescrever

Manual do SDK de autocomplete para prescrição

O SDK adiciona sugestões de medicamentos da base Anvisa + CMED dentro de qualquer campo de texto, textarea ou receituário multilinhas do seu sistema. É um arquivo único de ~8 KB, em JavaScript puro, sem dependências — funciona com React, Vue, Angular, PHP ou HTML estático. Exclusivo para assinantes (planos pagos).

1. Instalação

Inclua o script e chame MedAutocomplete.attach(seletor, opções). O seletor aceita qualquer seletor CSS (id, classe ou atributo) e pode ser usado em vários campos de uma vez.

<script src="https://SEU-DOMINIO/sdk/autocomplete.js"></script>
<script>
  MedAutocomplete.attach('#prescricao', {
    apiKey: 'sua_chave_aqui', // chave de plano pago (Starter ou superior)
    onSelect: function (item) {
      console.log('Selecionado:', item.id, item.titulo);
    }
  });
</script>

Substitua SEU-DOMINIO pelo domínio da API informado no painel do assinante. A área de teste na página para desenvolvedores funciona sem chave, apenas dentro do nosso site.

2. Opções

OpçãoTipoPadrãoDescrição
apiKeystring—Chave de plano pago (obrigatória fora do nosso site). Sem ela, a API responde 401/403.
limitnumber8Quantidade de sugestões exibidas (1 a 15).
minCharsnumber2Mínimo de caracteres digitados para disparar a busca.
debouncenumber250Espera em milissegundos após a última tecla antes de buscar. Evita uma requisição por letra.
typesarraytodosTipos retornados: apresentacao, principio_ativo e/ou fabricante.
sortstringrelevanciapopularidade coloca primeiro os medicamentos mais usados (cliques + visitas dos últimos 90 dias). relevancia mantém a ordem por similaridade com o texto digitado.
fieldsarrayprincipio_ativo_dose, subtitulo, descricaoCampos exibidos na linha secundária de cada sugestão. Repetidos são removidos automaticamente.
formatstring | functionpadrão do SDKTexto gravado no campo ao escolher. Aceita placeholders como {titulo} e {principio_ativo_dose}, ou uma função que recebe o item.
showPricebooleantrueMostra o menor preço CMED (PMC) na sugestão, quando disponível.
showFooterbooleantrueMostra o rodapé de crédito da base de dados.
themeobject—Personalização visual: accent (cor de destaque) e fontSize.
renderItemfunction—Renderização totalmente customizada de cada sugestão (ver seção 5).
onSelectfunction—Chamado ao escolher uma sugestão: recebe (item, elemento).
onErrorfunction—Chamado em falhas de rede, chave inválida ou cota excedida.
baseUrlstringdomínio oficialEndpoint alternativo da API (uso interno/homologação).
MedAutocomplete.attach('#prescricao', {
  apiKey: 'sua_chave_aqui',
  limit: 8,                    // quantidade de sugestões (1 a 15)
  minChars: 2,                 // mínimo de caracteres para buscar
  debounce: 250,               // espera em ms após parar de digitar
  types: ['apresentacao'],     // apresentacao | principio_ativo | fabricante
  sort: 'popularidade',        // 'popularidade' ou 'relevancia' (padrão)
  fields: ['principio_ativo_dose', 'subtitulo', 'descricao'],
  format: '{titulo} — {principio_ativo_dose}',
  showPrice: true,
  theme: { accent: '#2563eb', fontSize: '14px' },
  onSelect: function (item, el) {},
  onError: function (err) {}
});

3. O objeto do item selecionado

Cada sugestão carrega os dados completos do registro, disponíveis no onSelect:

CampoConteúdo
tipoapresentacao, principio_ativo ou fabricante
id / slugIdentificador estável para gravar no seu banco
tituloNome principal exibido (ex.: nome comercial ou princípio ativo)
subtituloComplemento (ex.: fabricante ou forma farmacêutica)
nome_comercialNome de marca, quando houver
principio_ativo_dosePrincípio ativo com concentração (ex.: dipirona monoidratada 1g)
descricaoDescrição regulatória da apresentação
forma_farmaceuticaComprimido, solução oral, cápsula etc.
categoria_regulatoriaGenérico, Similar, Referência, Biológico etc.
menor_pmcMenor Preço Máximo ao Consumidor vigente (número)
urlLink da ficha completa no site

4. Eventos

Além do callback onSelect, o SDK dispara o evento DOM medautocomplete:select no campo — útil para formulários que já escutam eventos:

document.querySelector('#prescricao').addEventListener('medautocomplete:select', function (e) {
  var item = e.detail;
  // preencher campos ocultos do formulário, por exemplo:
  document.querySelector('#medicamento_id').value = item.id;
  document.querySelector('#medicamento_ean').value = item.ean || '';
});

5. Layout customizado das sugestões

Com renderItem você controla o HTML de cada linha. O segundo argumento traz utilitários: highlight(texto) marca o termo buscado e escape(texto) protege contra HTML injetado.

MedAutocomplete.attach('#prescricao', {
  apiKey: 'sua_chave_aqui',
  renderItem: function (item, h) {
    return '<strong>' + h.highlight(item.titulo) + '</strong>' +
      '<small>' + h.escape(item.subtitulo || '') + '</small>';
  }
});

6. Navegação por teclado e comportamento

  • Setas ↑ / ↓: percorrem as sugestões.
  • Tab ou Enter: completam o campo com a sugestão ativa.
  • Esc: fecha a lista.
  • Textarea multilinhas: apenas a linha do cursor é substituída — o restante do receituário fica intacto.
  • Cache no navegador: termos repetidos não geram nova requisição, economizando a cota do plano.
  • Requisições concorrentes: buscas antigas são canceladas automaticamente quando a digitação continua.

7. Erros e cota

Cada busca feita pelo SDK fora do nosso site consome 1 requisição da cota mensal do plano. Em caso de erro, o callback onError recebe o objeto devolvido pela API:

HTTPCódigoSignificado
401invalid_keyChave ausente ou inválida
403plan_requiredO SDK exige plano pago (Starter ou superior)
429quota_exceededCota mensal esgotada — renova no próximo ciclo ou faça upgrade

Pronto para testar?

Experimente o playground ao vivo com personalizador visual e gere o código de instalação automaticamente.

Abrir o playground do SDK →