# OnboardPatientRequest

Model ID: `OnboardPatientRequest`

Combined body for POST /onboardpatients.

``patient`` is required. ``encounter``, ``vitals`` and ``questionnaire``
are optional — an omitted section is reported back with status
'skipped' and simply is not attempted.

Type: `object`

## Fields

| Field | Type | Required | Format | Allowed values | Default | Nullable | Description |
|---|---|---:|---|---|---|---:|---|
| `encounter` | [`OnboardEncounterPayload`](./OnboardEncounterPayload.md) | No |  |  |  | Yes | Encounter fields accepted by POST /encounters on the Patient API. patient_id and created_by are populated automatically from the newly-registered patient and the calling field agent. |
| `patient` | [`OnboardPatientPayload`](./OnboardPatientPayload.md) | Yes |  |  |  | No | first_name, last_name, email, date_of_birth required; password (auto-generated and not returned if omitted), phone, sex_at_birth, address/addresses, race optional. Same fields as POST /auth/register on the Patient API. |
| `questionnaire` | [`OnboardQuestionnairePayload`](./OnboardQuestionnairePayload.md) | No |  |  |  | Yes | Either questionnaire_id (FHIR id of an existing Questionnaire) or definition (create one inline — see OnboardQuestionnaireDefinition) is required. When definition is given instead of questionnaire_id, the Questionnaire is created first and its fhir_id is used for the response — the caller never needs to call POST /questionnaires separately. items are the answers, submitted the same way regardless of which one was supplied. |
| `vitals` | [`OnboardVitalsPayload`](./OnboardVitalsPayload.md) | No |  |  |  | Yes | Same fields as POST /patients/{patient_id}/vitals on the Vitals API. |

## Example

None declared in canonical OpenAPI.
