# Questionnaire forms

Canonical page: https://docs.ovok.com/flutter-sdk/questionnaire-forms

`QuestionnaireForm` renders FHIR Questionnaire items as a paged form and passes a
completed `QuestionnaireResponse` to your callback. It supports display, boolean,
choice, date, dateTime, time, decimal, integer, string and text items, including
`enableWhen`, required and basic length or numeric constraints, and repeated questions
and groups. Standard FHIR translation extensions are selected with the `locale`;
navigation and validation use the built-in English labels.

```dart
QuestionnaireForm(
  questionnaire: questionnaire,
  locale: Localizations.localeOf(context).toLanguageTag(),
  onSubmit: (response) async {
    await ovok.questionnaireResponses.submit(response);
  },
)
```

The callback owns persistence and error handling. The widget displays a retry message
if it throws. The API client submits responses through its existing FHIR transaction
route; see the [FHIR guide](/flutter-sdk/fhir#questionnaire-responses) and the
[`QuestionnaireResponsesResource` reference](/flutter-sdk/reference/ovok_sdk/questionnaires-resource).
