Pular para o conteúdo principal

Pré-requisitos

  • Uma chave de API da Telepatia (fale com seu gerente de conta para obtê-la)
  • A URL base (veja a visão geral)
Os exemplos abaixo usam a URL de produção.

Passo 0: Escolher (ou construir) um Smart Template

Um Smart Template decide quais seções a Telepatia gera e o formato de cada uma. Construa uma vez com nodes Telepatia curados, reutilize em todas as consultas. Liste os Smart Templates já criados para a sua conta:
curl https://scribe-api.telepatia.ai/v1/medical-record-configurations \
  -H "Authorization: Bearer SUA_CHAVE_API"
Se você ainda não tem nenhum, crie. O exemplo abaixo usa dois nodes Telepatia — veja o catálogo completo:
curl -X POST https://scribe-api.telepatia.ai/v1/medical-record-configurations \
  -H "Authorization: Bearer SUA_CHAVE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "General Consultation",
    "configuration": {
      "chiefComplaint": {
        "instructionSet": { "telepatiaPromptId": "CHIEF_COMPLAINT" },
        "schema": {
          "type": "object",
          "instructions": "Chief complaint",
          "properties": {
            "chiefComplaint": { "type": "string", "instructions": "Patient words" }
          }
        }
      },
      "historyOfPresentIllness": {
        "instructionSet": {
          "telepatiaPromptId": "HISTORY_OF_PRESENT_ILLNESS",
          "values": { "hpi_length": "long" }
        },
        "schema": {
          "type": "object",
          "instructions": "HPI",
          "properties": {
            "narrative": { "type": "string", "instructions": "Chronological HPI" }
          }
        }
      }
    }
  }'
Salve o id retornado (ex. mrc_a1b2c3d4e5f6g7h8) — você vai passá-lo pro set-consultation-context em seguida.
Você pode pular a criação explícita e enviar o JSON completo inline como medicalRecordConfiguration no set-consultation-context. A Telepatia faz hash e deduplica contra templates existentes automaticamente. Veja Smart Templates.

Passo 1: Definir contexto da consulta

Antes da consulta, envie os dados do paciente pra Telepatia. Inclua um consultationInternalId — seu próprio identificador que vincula a sessão ao seu sistema. Se omitir, a Telepatia gera um. Anexe o Smart Template do Passo 0 via medicalRecordConfigurationId.
curl -X POST https://scribe-api.telepatia.ai/v1/set-consultation-context \
  -H "Authorization: Bearer SUA_CHAVE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John Doe",
    "idCountry": "CO",
    "idType": "CC",
    "idValue": "123456789",
    "notes": "Paciente relata dor de cabeça recorrente e tontura",
    "pastMedicalHistory": "Hipertensão diagnosticada em 2020. Diabetes Tipo 2 controlada com metformina.",
    "consultationInternalId": "CONSULT-12345",
    "scribeSessionModality": "IN_PERSON",
    "medicalRecordConfigurationId": "mrc_a1b2c3d4e5f6g7h8"
  }'
Integrações legadas ainda podem passar scribeSessionConfigurationId — veja Templates de Sessão. Integrações novas devem usar Smart Templates.
Resposta:
{
  "success": true,
  "consultationInternalId": "CONSULT-12345"
}
Guarde o consultationInternalId da resposta. Você vai precisar dele nos próximos passos — tanto pra gerar o link de login quanto pra buscar os resultados da sessão depois.
Gere um código de verificação pra abrir o scribe da Telepatia. Passe o consultationInternalId pra que a sessão fique vinculada ao contexto da consulta que você definiu no Passo 1.
curl -X POST https://scribe-api.telepatia.ai/v1/auth/login \
  -H "Authorization: Bearer SUA_CHAVE_API" \
  -H "Content-Type: application/json" \
  -d '{"consultationInternalId": "CONSULT-12345"}'
Resposta:
{
  "code": "a1b2c3d4e5",
  "expiresAt": "2026-02-20T18:30:00+00:00",
  "expiresIn": 300,
  "redirectUrl": "https://scribe-beta.telepatia.ai/sign-in?code=a1b2c3d4e5&consultationInternalId=CONSULT-12345"
}
Redirecione o usuário pra redirectUrl pra abrir o scribe da Telepatia.

Passo 3: Realizar a sessão

Quando o usuário for redirecionado, ele vai chegar na interface do scribe da Telepatia. A partir daí:
  1. O scribe começa a gravar a consulta
  2. O médico realiza o atendimento normalmente
  3. Ao terminar, o médico finaliza a sessão no scribe
Nenhuma chamada de API é necessária durante esse passo — tudo acontece no app da Telepatia.

Passo 4: Buscar o registro preenchido

O passo 4 tem duas partes: confirmar que a sessão terminou, e depois buscar os documentos de registro médico (a saída preenchida do seu Smart Template).

4a. Verificar o status da sessão

curl https://scribe-api.telepatia.ai/v1/scribe-sessions/CONSULT-12345 \
  -H "Authorization: Bearer SUA_CHAVE_API"
Resposta:
{
  "id": "session-abc-123",
  "status": "completed",
  "createdAt": "2026-02-20T10:00:00Z",
  "completedAt": "2026-02-20T10:30:00Z",
  "patientName": "John Doe",
  "scribeSessionModality": "IN_PERSON",
  "consultationInternalId": "CONSULT-12345",
  "specialty": "Cardiology"
}
Continue fazendo polling enquanto status estiver em andamento (created, recording, stopped, processing). Os documentos ficam prontos assim que status for completed ou completedWithErrors. error e cancelled significam que nenhum documento será produzido. Veja Ciclo de vida da sessão para a lista completa.

4b. Buscar os documentos de registro médico

Quando a sessão chegar em completed ou completedWithErrors, busque o(s) registro(s) preenchido(s). Uma sessão pode produzir vários documentos (um por purposeprimary, rpa, emr, …). Filtre com ?purpose=primary para obter o do médico:
curl "https://scribe-api.telepatia.ai/v1/scribe-sessions/CONSULT-12345/medical-record-documents?purpose=primary" \
  -H "Authorization: Bearer SUA_CHAVE_API"
Resposta:
{
  "items": [
    {
      "id": "mrd-abc-123",
      "purpose": "primary",
      "specialty": "Cardiology",
      "language": "en",
      "medicalRecordSummary": "Paciente relata cefaleia recorrente e tontura.",
      "createdAt": "2026-02-20T10:30:00Z",
      "updatedAt": "2026-02-20T10:35:00Z",
      "medicalRecord": {
        "sections": []
      }
    }
  ],
  "total": 1
}
Veja Documentos de Registro Médico para o formato completo da resposta, incluindo medicalRecordSummaryStructured e os valores de purpose disponíveis.