> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hi-doctor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar com IA sobre a Hi-Doctor

> Um prompt pronto a colar, o protocolo do questionário conversacional e as regras que um assistente tem obrigatoriamente de seguir.

A Hi-Doctor foi concebida para ser conduzida por um assistente de IA. O
[conector MCP](/pt/mcp/connect) expõe todo o percurso de cuidados de um
paciente sob a forma de ferramentas, incluindo um questionário que pode ser
preenchido como uma conversa em vez de um formulário.

Esta página destina-se a quem estiver a construir esse assistente.

## Cole isto no seu prompt de sistema

<Tip>
  Copie o texto abaixo tal como está para o prompt de sistema de qualquer
  assistente ligado à Hi-Doctor. Está em inglês de propósito — é a versão
  normativa, e codifica as regras descritas nesta página para que não tenha de as
  repetir.
</Tip>

```text theme={null}
You have access to Hi-Doctor, an online medical service, through its MCP
connector. You are acting on behalf of a patient who has connected their own
account.

WHAT YOU CAN DO
- Complete a medical questionnaire with the patient, one question at a time.
- Get them a payment link for a consultation or treatment plan.
- Read their consultations, prescriptions, orders and payments.
- Send and read messages to and from their medical team.
- Track progress: log and correct weight, injections and daily notes.
- Manage their plan: cancel, reactivate, or open the billing portal.
- Pull a renewal forward (early order) — only with the payment permission.

HOW TO RUN A QUESTIONNAIRE
1. Call hidoctor_questionnaire_start with the category the patient wants.
2. Ask the patient the question exactly as it is returned. Do not rephrase
   clinical wording, and do not merge several questions into one.
3. Present the returned options as the choices. Send back the option's `value`,
   not the label you showed.
4. Call hidoctor_questionnaire_answer with their answer. It returns the next
   question. Repeat until status is "ready_to_submit".
5. Use hidoctor_questionnaire_review to read the answers back to the patient
   before submitting. Use hidoctor_questionnaire_back to change one.
6. Call hidoctor_questionnaire_submit.

RULES
- Never invent, assume or infer a medical answer. If the patient has not
  answered, ask again. "I don't know" is a real answer. If none of the options
  fits, read them out and let the PATIENT choose — never choose for them, and
  never narrow the list down on their behalf.
- Never give medical advice, and never suggest a medication or a dose. A
  registered doctor decides those after reviewing the questionnaire.
- If the questionnaire comes back ineligible, say so plainly and do not try
  other answers to get a different result.
- Before anything that costs money or cancels a plan, tell the patient exactly
  what will happen and get an explicit yes.
- Cancelling a plan takes effect at the end of the paid period, not
  immediately. Say that.
- An early order is IRREVERSIBLE: it creates the renewal consultation now and
  uses up the one early order allowed this period. Explain that and get an
  explicit yes before calling it.
- A prescription or invoice link is a medical document. Give it only to the
  patient. If the result says delivery is signed_redirect, the link opens
  WITHOUT signing in — never repeat it anywhere shared and do not store it.
- If the patient describes severe or sudden symptoms — chest pain, difficulty
  breathing, suicidal thoughts, a severe allergic reaction — stop and tell them
  to contact their local emergency number. Do not continue the questionnaire.
```

## O protocolo do questionário conversacional

<Steps>
  <Step title="Iniciar">
    `hidoctor_questionnaire_start` com um `category_slug` (`weight-loss`,
    `hair-growth`, `sexual-health`, …). Devolve a primeira pergunta por
    responder, mais `answered_count` e `applicable_total`, para que possa
    mostrar o progresso.

    Se o paciente já tinha um questionário a meio, é retomado no ponto em que
    ficou.
  </Step>

  <Step title="Responder, repetidamente">
    `hidoctor_questionnaire_answer` regista uma resposta e devolve a pergunta
    **seguinte**. É o servidor que decide o que vem a seguir, pelo que a
    ramificação é tratada por si — nunca avalia uma condição por sua conta.

    As respostas são fundidas, não substituídas. Nada se perde entre chamadas, e
    o paciente pode parar e voltar mais tarde.
  </Step>

  <Step title="Rever e corrigir">
    `hidoctor_questionnaire_review` devolve todas as respostas dadas até ao
    momento, em formato legível. `hidoctor_questionnaire_back` recua para a
    pergunta anterior, para que uma resposta possa ser alterada.

    Alterar uma resposta pode fechar um ramo. Quando isso acontece, a resposta
    do servidor enumera `dropped_question_keys` — as respostas que deixaram de
    se aplicar e foram removidas. Mencione-o se for relevante para o paciente.
  </Step>

  <Step title="Submeter">
    `hidoctor_questionnaire_submit` devolve um `outcome`:

    | Resultado                | Significado                                                        |
    | ------------------------ | ------------------------------------------------------------------ |
    | `submitted`              | Enviado para revisão por um médico.                                |
    | `ineligible`             | Clinicamente desadequado. Este é um resultado normal, não um erro. |
    | `covered_by_active_plan` | O plano que já tem cobre este pedido.                              |
  </Step>
</Steps>

### Formatos de resposta

É a própria pergunta que indica como responder-lhe. Leia o campo `kind`:

| `kind`                      | Enviar                                                   |
| --------------------------- | -------------------------------------------------------- |
| `single`, `select`          | `value: "<option value>"`                                |
| `multi`, `multi-with-input` | `values: ["<option value>", …]`                          |
| `input`                     | `values: { "<field name>": <value>, … }`                 |
| `confirm`                   | `value: "understood"`                                    |
| `option-input`              | `option_inputs: { "<option_input_key>": "<free text>" }` |

Os nós de seguimento trazem uma cadeia de texto `answer_instructions` que
indica exatamente onde o valor deve ser colocado. Siga-a.

## As regras acima não são impostas tecnicamente

A Hi-Doctor não consegue distinguir se uma resposta veio do paciente ou foi
inferida pelo assistente. Nada na API valida isso.

<Warning>
  A integridade do registo clínico depende de o seu assistente seguir as regras
  acima. Um assistente que preencha uma resposta plausível vai submeter com
  sucesso — e um médico vai prescrever a partir dela. Trate «nunca inventar uma
  resposta» como uma restrição inegociável no seu prompt de sistema, não como uma
  sugestão.
</Warning>

O que o servidor *impõe* de facto é a elegibilidade.

## A elegibilidade é decidida pelo servidor

As contraindicações, o limiar de IMC, o limite de idade e a verificação do país
abrangido são impostos quando o questionário é submetido — não pelo assistente
nem pelo site.

<Warning>
  Não tente fazer uma triagem prévia do paciente, e não volte a correr um
  questionário com respostas alteradas depois de um resultado `ineligible`. A
  verificação existe para manter as pessoas em segurança, e contorná-la poria um
  paciente em risco.
</Warning>

## Coisas que o vão apanhar desprevenido

<AccordionGroup>
  <Accordion title="Envie os valores das opções, não as etiquetas">
    As etiquetas são texto para humanos e são traduzidas para a língua do
    paciente. `value` é o identificador estável que o servidor espera.
  </Accordion>

  <Accordion title="O questionário vem na língua do paciente">
    O texto das perguntas é devolvido na língua definida no perfil do paciente.
    Faça as perguntas nessa língua.
  </Accordion>

  <Accordion title="O pagamento acontece na Stripe, não no chat">
    `hidoctor_checkout_create` devolve um link. Nunca peça dados do cartão — não
    tem forma de os receber, e pedi-los habitua os pacientes a entregar números
    de cartão a chatbots.
  </Accordion>

  <Accordion title="O registo do progresso é exclusivo da perda de peso">
    Numa ligação normal de paciente todas as permissões são concedidas, o
    pagamento incluído. Mas o diário de progresso é construído à volta do peso,
    das injeções e de um plano de injeções, pelo que só está **disponível no
    tratamento de perda de peso** — não nos planos de crescimento capilar ou de
    saúde sexual.

    Chame `hidoctor_progress_status` antes de propor registar seja o que for. Se
    uma ferramenta estiver totalmente ausente, o paciente recusou essa permissão
    no momento da ligação — diga-o, em vez de tentar adivinhar um contorno.
  </Accordion>

  <Accordion title="O peso é um registo por dia; as notas e as injeções não">
    Registar o peso numa data substitui o registo desse dia. As notas e as
    injeções acumulam-se, pelo que registar duas vezes cria dois registos.
  </Accordion>
</AccordionGroup>

## Sem MCP

Se não estiver a usar um cliente MCP, as mesmas capacidades estão disponíveis
através da [API REST](/api-reference/introduction) — incluindo a
[inscrição programática](/api-reference/signup), para que uma interface de chat
possa criar também a conta.
