> ## 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.

# Bouwen op Hi-Doctor met AI

> Een kant-en-klare prompt, het conversationele vragenlijstprotocol en de regels waaraan een assistent zich moet houden.

Hi-Doctor is ontworpen om door een AI-assistent te worden aangestuurd. De
[MCP-connector](/nl/mcp/connect) biedt het hele zorgtraject van een patiënt aan
als tools, inclusief een vragenlijst die als gesprek in plaats van als formulier
kan worden doorlopen.

Deze pagina is bedoeld voor wie die assistent bouwt.

## Plak dit in uw systeemprompt

<Tip>
  Kopieer dit letterlijk naar de systeemprompt van elke assistent die aan
  Hi-Doctor is gekoppeld. Het bevat de regels hieronder, zodat u ze niet hoeft te
  herhalen. De prompt staat bewust in het Engels; laat hem ongewijzigd — de
  assistent voert het gesprek met de patiënt gewoon in diens eigen taal.
</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.
```

## Het conversationele vragenlijstprotocol

<Steps>
  <Step title="starten">
    `hidoctor_questionnaire_start` met een `category_slug` (`weight-loss`,
    `hair-growth`, `sexual-health`, …). Geeft de eerste onbeantwoorde vraag
    terug, plus `answered_count` en `applicable_total` zodat u de voortgang kunt
    tonen.

    Had de patiënt al een half ingevulde vragenlijst, dan wordt die hervat waar
    hij was gebleven.
  </Step>

  <Step title="antwoorden, telkens opnieuw">
    `hidoctor_questionnaire_answer` legt één antwoord vast en geeft de
    **volgende** vraag terug. De server bepaalt wat er volgt, dus de vertakking
    wordt voor u afgehandeld — u evalueert zelf nooit een voorwaarde.

    Antwoorden worden samengevoegd, niet vervangen. Er gaat niets verloren
    tussen aanroepen, en de patiënt kan stoppen en later terugkomen.
  </Step>

  <Step title="nakijken en corrigeren">
    `hidoctor_questionnaire_review` geeft alle antwoorden tot dan toe in
    leesbare vorm terug. `hidoctor_questionnaire_back` gaat naar de vorige vraag
    zodat een antwoord kan worden gewijzigd.

    Een antwoord wijzigen kan een vertakking afsluiten. Gebeurt dat, dan bevat
    het antwoord `dropped_question_keys` — antwoorden die niet meer van
    toepassing zijn en zijn verwijderd. Meld dat als het voor de patiënt
    uitmaakt.
  </Step>

  <Step title="indienen">
    `hidoctor_questionnaire_submit` geeft een `outcome` terug:

    | Uitkomst                 | Betekenis                                                      |
    | ------------------------ | -------------------------------------------------------------- |
    | `submitted`              | Verstuurd ter beoordeling door een arts.                       |
    | `ineligible`             | Klinisch niet passend. Dit is een normale uitkomst, geen fout. |
    | `covered_by_active_plan` | Het bestaande plan dekt dit al.                                |
  </Step>
</Steps>

### Antwoordvormen

De vraag vertelt u hoe u hem beantwoordt. Lees `kind`:

| `kind`                      | Verstuur                                                 |
| --------------------------- | -------------------------------------------------------- |
| `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>" }` |

Vervolgvragen dragen een `answer_instructions`-tekst die precies aangeeft waar
de waarde thuishoort. Volg die.

## De regels hierboven worden technisch niet afgedwongen

Hi-Doctor kan niet zien of een antwoord van de patiënt kwam of door de assistent
werd afgeleid. Niets in de API controleert dat.

<Warning>
  De integriteit van het medisch dossier hangt ervan af dat uw assistent zich aan
  de bovenstaande regels houdt. Een assistent die een aannemelijk antwoord invult,
  dient met succes in — en een arts schrijft daaruit voor. Behandel "verzin nooit
  een antwoord" als een harde randvoorwaarde in uw systeemprompt, niet als een
  suggestie.
</Warning>

Wat de server *wel* afdwingt, is geschiktheid.

## Geschiktheid wordt door de server bepaald

Contra-indicaties, de BMI-drempel, de leeftijdsgrens en de controle op
ondersteunde landen worden afgedwongen wanneer de vragenlijst wordt ingediend —
niet door de assistent en niet door de website.

<Warning>
  Probeer een patiënt niet vooraf te screenen, en doorloop een vragenlijst niet
  opnieuw met gewijzigde antwoorden na een uitkomst `ineligible`. De controle
  bestaat om mensen veilig te houden, en eromheen werken brengt een patiënt in
  gevaar.
</Warning>

## Dingen waar u tegenaan loopt

<AccordionGroup>
  <Accordion title="Verstuur de waarde van een optie, niet het label">
    Labels zijn tekst voor mensen en worden vertaald naar de taal van de
    patiënt. `value` is het stabiele identificatiekenmerk dat de server
    verwacht.
  </Accordion>

  <Accordion title="De vragenlijst is in de taal van de patiënt">
    De vraagtekst komt terug in de taal die op het profiel van de patiënt staat.
    Stel de vraag in die taal.
  </Accordion>

  <Accordion title="Betalen gebeurt bij Stripe, niet in de chat">
    `hidoctor_checkout_create` geeft een link terug. Vraag nooit om
    kaartgegevens — u kunt ze toch niet aannemen, en ernaar vragen leert
    patiënten aan om kaartnummers aan chatbots te geven.
  </Accordion>

  <Accordion title="Voortgangsregistratie is alleen voor gewichtsverlies">
    Bij een normale koppeling als patiënt worden alle machtigingen verleend,
    betaling inbegrepen. Maar het voortgangsdagboek is opgebouwd rond gewicht,
    injecties en een injectieplan, en is daarom **alleen beschikbaar bij
    behandeling van gewichtsverlies** — niet bij plannen voor haargroei of
    seksuele gezondheid.

    Roep `hidoctor_progress_status` aan voordat u aanbiedt iets bij te houden.
    Ontbreekt een tool volledig, dan heeft de patiënt die machtiging bij het
    koppelen geweigerd — zeg dat, in plaats van naar een omweg te gissen.
  </Accordion>

  <Accordion title="Gewicht is één registratie per dag; notities en injecties niet">
    Gewicht vastleggen voor een datum vervangt de registratie van die dag.
    Notities en injecties komen erbij, dus twee keer vastleggen levert er twee
    op.
  </Accordion>
</AccordionGroup>

## Zonder MCP

Gebruikt u geen MCP-client, dan zijn dezelfde mogelijkheden beschikbaar via de
[REST API](/api-reference/introduction) — inclusief
[programmatische registratie](/api-reference/signup), zodat een chatinterface
ook het account kan aanmaken. (Die pagina's zijn in het Engels.)
