# Input Forms

## Custom manage data input.&#x20;

iCure enables the owner to determine data input structure through custom forms. This way:&#x20;

* BI solutions can be easily implemented on top of the database, as data is structured by design.
* End-to-end encryption can be maintained through the whole input process, as data are being anonymized through encryption from the start of the Data Life-Cycle.
* [Access Rights Management](/icure/icure-data-stack/rights-management.md) policies automatically assign the relevant data to the respective department.&#x20;
* Auditing is also made easy, as Data are timestamped, signed by the user, and data-versioning is supported.

![implementation of an Input Form](/files/-Mf18VVaeWl07RuHxZgb)

## Input Form Syntax

Despite the encryption, timestamping and access rights management challenges, the Input forms are quite easy to manage with a typical YAML syntax

```yaml
form: GP consultation
description: Basic SOAP scheme for a GP consultation
sections:
  - section: SOAP
    fields:
      - field: Reason for visit
        type: textfield
        columns: 5
        rows: 3
        grows: true
        schema: text-document
        tags:
          - CD-ITEM|diagnosis|1
        codifications:
          - BE-THESAURUS
          - ICD10
        options:
          option: blink
      - field: Anamnese
        type: number-field
        shortLabel: NumberField
        tags:
          - CD-ITEM|parameter|1
          - CD-PARAMETER|bmi|1
        codifications: []
        options:
          option: bang
      - field: Diagnosis
        type: measure-field
        shortLabel: MeasureField
        tags:
          - CD-ITEM|diagnosis|1
        codifications: [ SNOMED-CT ]
        options:
          unit: bpm
      - field: Treatment
        type: multiple-choice
        shortLabel: MultipleChoice
        rows: 4
        columns: 4
        tags: []
        codifications:
          - KATZ
        options:
          many: no

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://icure.gitbook.io/icure/customizable-features/input-forms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
