---
title: "symptom_sign_screening"
description: "Series of questions and associated answers used to screen for symptoms or signs."
---

Series of questions and associated answers used to screen for symptoms or signs.

**Purpose.** To create a framework for recording answers to pre-defined screening questions about symptoms or signs.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-OBSERVATION.symptom_sign_screening.v1` | 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. | — |
| `screening_purpose`<br />`screening_purpose_code`<br />`screening_purpose_system`<br />`screening_purpose_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Screening purpose | `/data[at0001]/events[at0002]/data[at0003]/items[at0034]` |
| `any_symptoms_or_signs` | `boolean` | yes | Any symptoms or signs? | `/data[at0001]/events[at0002]/data[at0003]/items[at0028]` |
| `onset` | `timestamptz` | yes | Onset | `/data[at0001]/events[at0002]/data[at0003]/items[at0029]` |
| `description` | `text` | yes | Description | `/data[at0001]/events[at0002]/data[at0003]/items[at0036]` |

## Constraints

```sql
check ((screening_purpose_code is null and screening_purpose_system is null and screening_purpose_valueset_id is null) or (screening_purpose is not null and screening_purpose_code is not null and screening_purpose_system is not null and screening_purpose_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 |
| `screening_purpose_valueset_id, screening_purpose_code, screening_purpose_system, screening_purpose` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`symptom_sign_screening_specific_symptom_sign`](/docs/tables/symptom_sign_screening_specific_symptom_sign) via `symptom_sign_screening_id`

## Indexes

- `symptom_sign_screening_form_id_idx` on `form_id`

## Child tables

2 tables hang off `symptom_sign_screening`, one row per repetition.

### `symptom_sign_screening_specific_symptom_sign`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_screening_id` | `uuid` → [`symptom_sign_screening`](/docs/tables/symptom_sign_screening) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `symptom_sign_name`<br />`symptom_sign_name_code`<br />`symptom_sign_name_system`<br />`symptom_sign_name_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Symptom/sign name | `/data[at0001]/events[at0002]/data[at0003]/items[at0022]/items[at0004]` |
| `presence` | `boolean` | yes | Presence? | `/data[at0001]/events[at0002]/data[at0003]/items[at0022]/items[at0005]` |
| `timing` | `timestamptz` | yes | Timing | `/data[at0001]/events[at0002]/data[at0003]/items[at0022]/items[at0037]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0022]/items[at0035]` |

#### Constraints

```sql
check ((symptom_sign_name_code is null and symptom_sign_name_system is null and symptom_sign_name_valueset_id is null) or (symptom_sign_name is not null and symptom_sign_name_code is not null and symptom_sign_name_system is not null and symptom_sign_name_valueset_id is not null))
```

#### Unique

- `symptom_sign_screening_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `symptom_sign_screening_id` | [`symptom_sign_screening`](/docs/tables/symptom_sign_screening) | cascade |
| `symptom_sign_name_valueset_id, symptom_sign_name_code, symptom_sign_name_system, symptom_sign_name` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

### Referenced by

- [`symptom_sign_screening_specific_symptom_sign_additional_details`](/docs/tables/symptom_sign_screening_specific_symptom_sign_additional_details) via `symptom_sign_screening_specific_symptom_sign_id`

### `symptom_sign_screening_specific_symptom_sign_additional_details`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_screening_specific_symptom_sign_id` | `uuid` → [`symptom_sign_screening_specific_symptom_sign`](/docs/tables/symptom_sign_screening_specific_symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `symptom_sign_id` | `uuid` | no | Additional details | `/data[at0001]/events[at0002]/data[at0003]/items[at0022]/items[at0026]` |

#### Unique

- `symptom_sign_screening_specific_symptom_sign_id, position`
- `symptom_sign_screening_specific_symptom_sign_id, symptom_sign_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `symptom_sign_screening_specific_symptom_sign_id` | [`symptom_sign_screening_specific_symptom_sign`](/docs/tables/symptom_sign_screening_specific_symptom_sign) | cascade |
| `symptom_sign_id` | [`symptom_sign`](/docs/tables/symptom_sign) | no action |

#### Indexes

- `symptom_sign_screening_specific_symptom_sign_additional__7a2eca` on `symptom_sign_id`

