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

# Desarrollar con IA sobre Hi-Doctor

> Un prompt listo para copiar, el protocolo conversacional del cuestionario y las reglas que un asistente debe cumplir.

Hi-Doctor está diseñado para que lo maneje un asistente de IA. El
[conector MCP](/es/mcp/connect) expone todo el recorrido asistencial de un
paciente en forma de herramientas, incluido un cuestionario que puede
completarse como una conversación en lugar de como un formulario.

Esta página es para quien esté desarrollando ese asistente.

## Pegue esto en su prompt de sistema

<Tip>
  Copie esto tal cual en el prompt de sistema de cualquier asistente conectado a
  Hi-Doctor. Recoge las reglas que se explican más abajo, así que no tiene que
  repetirlas.
</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.
```

## El protocolo conversacional del cuestionario

<Steps>
  <Step title="start">
    `hidoctor_questionnaire_start` con un `category_slug` (`weight-loss`,
    `hair-growth`, `sexual-health`, …). Devuelve la primera pregunta sin
    responder junto con `answered_count` y `applicable_total`, para que pueda
    mostrar el avance.

    Si el paciente ya tenía un cuestionario a medias, se reanuda donde lo dejó.
  </Step>

  <Step title="answer, de forma repetida">
    `hidoctor_questionnaire_answer` registra una respuesta y devuelve la
    **siguiente** pregunta. El servidor decide qué viene después, así que la
    ramificación está resuelta: usted nunca evalúa una condición por su cuenta.

    Las respuestas se fusionan, no se sustituyen. No se pierde nada entre
    llamadas, y el paciente puede dejarlo y volver más tarde.
  </Step>

  <Step title="revisar y corregir">
    `hidoctor_questionnaire_review` devuelve en formato legible todas las
    respuestas dadas hasta el momento. `hidoctor_questionnaire_back` retrocede
    a la pregunta anterior para poder cambiar una respuesta.

    Cambiar una respuesta puede cerrar una rama. Cuando ocurre, la respuesta
    incluye `dropped_question_keys`: las respuestas que dejan de ser aplicables
    y se han eliminado. Menciónelo si al paciente le importa.
  </Step>

  <Step title="submit">
    `hidoctor_questionnaire_submit` devuelve un `outcome`:

    | Outcome                  | Significado                                                    |
    | ------------------------ | -------------------------------------------------------------- |
    | `submitted`              | Enviado para que lo revise un médico.                          |
    | `ineligible`             | Clínicamente no adecuado. Es un resultado normal, no un error. |
    | `covered_by_active_plan` | Su plan actual ya lo cubre.                                    |
  </Step>
</Steps>

### Formatos de respuesta

La propia pregunta indica cómo responderla. Lea `kind`:

| `kind`                      | Envíe                                                    |
| --------------------------- | -------------------------------------------------------- |
| `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>" }` |

Los nodos de seguimiento llevan una cadena `answer_instructions` que indica
exactamente dónde va el valor. Sígala.

## Estas reglas no se imponen técnicamente

Hi-Doctor no puede saber si una respuesta la dio el paciente o la dedujo el
asistente. Nada en la API lo comprueba.

<Warning>
  La integridad de la historia clínica depende de que su asistente cumpla las
  reglas anteriores. Un asistente que rellene una respuesta plausible enviará el
  cuestionario con éxito, y un médico prescribirá a partir de él. Trate "nunca
  inventes una respuesta" como una restricción estricta de su prompt de sistema,
  no como una sugerencia.
</Warning>

Lo que el servidor *sí* impone es la idoneidad.

## La idoneidad la decide el servidor

Las contraindicaciones, el umbral de IMC, el límite de edad y la comprobación
del país admitido se aplican al enviarse el cuestionario, no las hace el
asistente ni la web.

<Warning>
  No intente hacer un cribado previo del paciente y no vuelva a lanzar un
  cuestionario con respuestas alteradas después de un resultado `ineligible`. La
  comprobación existe para proteger a las personas, y sortearla pondría en riesgo
  a un paciente.
</Warning>

## Cosas con las que va a tropezar

<AccordionGroup>
  <Accordion title="Envíe los valores de las opciones, no las etiquetas">
    Las etiquetas son texto para personas y se traducen al idioma del paciente.
    `value` es el identificador estable que espera el servidor.
  </Accordion>

  <Accordion title="El cuestionario está en el idioma del paciente">
    El texto de las preguntas llega en el idioma que figure en el perfil del
    paciente. Pregunte en ese idioma.
  </Accordion>

  <Accordion title="El pago ocurre en Stripe, no en el chat">
    `hidoctor_checkout_create` devuelve un enlace. Nunca pida datos de la
    tarjeta: no tiene forma de recogerlos, y pedirlos acostumbra a los
    pacientes a dar su número de tarjeta a un chatbot.
  </Accordion>

  <Accordion title="El seguimiento de la evolución es solo de control de peso">
    En una conexión normal de paciente se conceden todos los permisos, el de
    pago incluido. Pero el diario de evolución está construido en torno al
    peso, las inyecciones y una pauta de inyección, así que **solo está
    disponible en el tratamiento de control de peso**, no en los planes de
    crecimiento capilar ni de salud sexual.

    Llame a `hidoctor_progress_status` antes de ofrecerse a registrar nada. Si
    una herramienta falta por completo, el paciente rechazó ese permiso al
    conectar: dígaselo en lugar de improvisar un rodeo.
  </Accordion>

  <Accordion title="El peso admite un registro al día; las notas y las inyecciones no">
    Registrar el peso de una fecha sustituye el registro de ese día. Las notas
    y las inyecciones se añaden, así que registrarlas dos veces crea dos
    entradas.
  </Accordion>
</AccordionGroup>

## Sin MCP

Si no usa un cliente MCP, las mismas capacidades están disponibles a través de
la [API REST](/api-reference/introduction), incluido el
[registro programático](/api-reference/signup) para que una interfaz de chat
pueda crear también la cuenta.
