---
title: "light_projection_test"
description: "The assessment of an individual's ability to discriminate the directions of a light stimulus presented from different positions relative to a single eye."
---

The assessment of an individual's ability to discriminate the directions of a light stimulus presented from different positions relative to a single eye.

**Purpose.** To record the results of a light projection test for a single eye.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-OBSERVATION.light_projection_test.v0` | openEHR | defines this table |

## Columns

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `form_id` | `uuid` → [`form`](/docs/tables/form) | no | The form this entry was recorded on. | — |
| `form_block_id` | `uuid` | yes | The block within the form, when the entry is bound to one. | — |
| `eye_examined`<br />`eye_examined_code`<br />`eye_examined_system`<br />`eye_examined_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Eye examined | `/data[at0001]/events[at0002]/data[at0003]/items[at0005]` |
| `overall_result`<br />`overall_result_code`<br />`overall_result_system`<br />`overall_result_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Overall result | `/data[at0001]/events[at0002]/data[at0003]/items[at0035]` |
| `clinical_interpretation` | `text` | yes | Clinical interpretation | `/data[at0001]/events[at0002]/data[at0003]/items[at0038]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0039]` |
| `confounding_factors` | `text` | yes | Confounding factors | `/data[at0001]/events[at0002]/state[at0040]/items[at0041]` |

## Constraints

```sql
check ((eye_examined_code is null and eye_examined_system is null and eye_examined_valueset_id is null and eye_examined is null) or (eye_examined is not null and eye_examined_code is not null and eye_examined_system is not null and eye_examined_valueset_id is not null))
check ((overall_result_code is null and overall_result_system is null and overall_result_valueset_id is null and overall_result is null) or (overall_result is not null and overall_result_code is not null and overall_result_system is not null and overall_result_valueset_id is not null))
```

## Unique

- `form_block_id`

## References

| Columns | Target | On delete |
|---|---|---|
| `form_id` | [`form`](/docs/tables/form) | cascade |
| `form_id, form_block_id` | [`form_block`](/docs/tables/form_block) | cascade |
| `eye_examined_valueset_id, eye_examined_code, eye_examined_system, eye_examined` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `overall_result_valueset_id, overall_result_code, overall_result_system, overall_result` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`light_projection_test_per_light_position`](/docs/tables/light_projection_test_per_light_position) via `light_projection_test_id`

## Indexes

- `light_projection_test_form_id_idx` on `form_id`

## Child tables

1 table hang off `light_projection_test`, one row per repetition.

### `light_projection_test_per_light_position`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `light_projection_test_id` | `uuid` → [`light_projection_test`](/docs/tables/light_projection_test) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `light_position`<br />`light_position_code`<br />`light_position_system`<br />`light_position_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Light position | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0010]` |
| `response`<br />`response_code`<br />`response_system`<br />`response_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Response | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0022]` |
| `correctness`<br />`correctness_code`<br />`correctness_system`<br />`correctness_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Correctness | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0019]` |

#### Constraints

```sql
check ((light_position_code is null and light_position_system is null and light_position_valueset_id is null) or (light_position is not null and light_position_code is not null and light_position_system is not null and light_position_valueset_id is not null))
check ((response_code is null and response_system is null and response_valueset_id is null) or (response is not null and response_code is not null and response_system is not null and response_valueset_id is not null))
check ((correctness_code is null and correctness_system is null and correctness_valueset_id is null and correctness is null) or (correctness is not null and correctness_code is not null and correctness_system is not null and correctness_valueset_id is not null))
```

#### Unique

- `light_projection_test_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `light_projection_test_id` | [`light_projection_test`](/docs/tables/light_projection_test) | cascade |
| `light_position_valueset_id, light_position_code, light_position_system, light_position` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `response_valueset_id, response_code, response_system, response` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `correctness_valueset_id, correctness_code, correctness_system, correctness` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-OBSERVATION.light_projection_test.v0/correctness` | 2 |
| `org.openehr::openEHR-EHR-OBSERVATION.light_projection_test.v0/eye_examined` | 2 |
| `org.openehr::openEHR-EHR-OBSERVATION.light_projection_test.v0/light_position` | 8 |
| `org.openehr::openEHR-EHR-OBSERVATION.light_projection_test.v0/overall_result` | 2 |
| `org.openehr::openEHR-EHR-OBSERVATION.light_projection_test.v0/response` | 11 |

