Core Concepts


A form represents a collection of pages, sections and questions. Forms are described using schemas written in JSON. The most basic valid form schema looks as follows:

  "name": "",
  "pages": [],
  "processor": "EncounterFormProcessor",
  "uuid": "xxxx",
  "referencedForms": []

Form schemas get constructed using the Schema editor. When you launch the Schema editor, you get presented with a default form scaffold with the code shown above.

Defining a Form

A form definition has the following properties:

  • name: The name of the form.


    Presently, form names must contain the word POC to be considered valid. For example, Test POC form is a valid form name while Yet Another Test form is not.

  • pages: The collection of pages that make up your form. You can add pages to a form by adding page definitions to the pages array.

  • processor: Defaults to EncounterFormProcessor. The form processor converts an OpenMRS REST form response into a format that the form renderer can process and display. Conversely, the form processor also converts the submitted form payload into a format that the REST backend can understand.

  • referencedForms: The collection of components that the form references. You can build a form by adding components to it using the Reference Forms feature of the Form Builder. Read more about referencing forms in the referencing components guide.

  • uuid: The UUID of your form. This UUID gets autogenerated by the Form Builder when you save a form successfully.