---
title: "symptom_sign"
description: "Reported observation of a physical or mental disturbance in an individual."
---

Reported observation of a physical or mental disturbance in an individual.

**Purpose.** To record details about a single episode of a reported symptom or sign including context, but not details, of previous episodes if appropriate.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-CLUSTER.symptom_sign.v2` | openEHR | defines this table |

## Columns

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `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 | `/items[at0001]` |
| `body_site` | `text` | yes | Body site | `/items[at0151]` |
| `description` | `text` | yes | Description | `/items[at0002]` |
| `episodicity`<br />`episodicity_code`<br />`episodicity_system`<br />`episodicity_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Episodicity | `/items[at0175]` |
| `occurrence`<br />`occurrence_code`<br />`occurrence_system`<br />`occurrence_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Occurrence | `/items[at0186]` |
| `episode_onset` | `timestamptz` | yes | Episode onset | `/items[at0152]` |
| `onset_timing` | `interval` | yes | Onset timing | `/items[at0164]` |
| `nadir` | `timestamptz` | yes | Nadir | `/items[at0200]` |
| `episode_duration` | `interval` | yes | Episode duration | `/items[at0028]` |
| `severity_category`<br />`severity_category_code`<br />`severity_category_system`<br />`severity_category_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Severity category | `/items[at0021]` |
| `character`<br />`character_code`<br />`character_system`<br />`character_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Character | `/items[at0189]` |
| `progression`<br />`progression_code`<br />`progression_system`<br />`progression_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Progression | `/items[at0180]` |
| `pattern` | `text` | yes | Pattern | `/items[at0003]` |
| `impact` | `text` | yes | Impact | `/items[at0155]` |
| `episode_description` | `text` | yes | Episode description | `/items[at0037]` |
| `resolution_date_time` | `timestamptz` | yes | Resolution date/time | `/items[at0161]` |
| `description_of_previous_episodes` | `text` | yes | Description of previous episodes | `/items[at0057]` |
| `number_of_previous_episodes` | `integer` | yes | Number of previous episodes | `/items[at0031]` |
| `comment` | `text` | yes | Comment | `/items[at0163]` |

## 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))
check ((episodicity_code is null and episodicity_system is null and episodicity_valueset_id is null and episodicity is null) or (episodicity is not null and episodicity_code is not null and episodicity_system is not null and episodicity_valueset_id is not null))
check ((occurrence_code is null and occurrence_system is null and occurrence_valueset_id is null and occurrence is null) or (occurrence is not null and occurrence_code is not null and occurrence_system is not null and occurrence_valueset_id is not null))
check ((severity_category_code is null and severity_category_system is null and severity_category_valueset_id is null) or (severity_category is not null and severity_category_code is not null and severity_category_system is not null and severity_category_valueset_id is not null))
check ((character_code is null and character_system is null and character_valueset_id is null) or (character is not null and character_code is not null and character_system is not null and character_valueset_id is not null))
check ((progression_code is null and progression_system is null and progression_valueset_id is null) or (progression is not null and progression_code is not null and progression_system is not null and progression_valueset_id is not null))
check (number_of_previous_episodes is null or number_of_previous_episodes >= 0)
```

## References

| Columns | Target | On delete |
|---|---|---|
| `symptom_sign_name_valueset_id, symptom_sign_name_code, symptom_sign_name_system, symptom_sign_name` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `episodicity_valueset_id, episodicity_code, episodicity_system, episodicity` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `occurrence_valueset_id, occurrence_code, occurrence_system, occurrence` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `severity_category_valueset_id, severity_category_code, severity_category_system, severity_category` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `character_valueset_id, character_code, character_system, character` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `progression_valueset_id, progression_code, progression_system, progression` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`adverse_reaction_event_reaction_details`](/docs/tables/adverse_reaction_event_reaction_details) via `symptom_sign_id`
- [`story_structured_detail`](/docs/tables/story_structured_detail) via `symptom_sign_id`
- [`symptom_sign_structured_body_site`](/docs/tables/symptom_sign_structured_body_site) via `symptom_sign_id`
- [`symptom_sign_modifying_factor`](/docs/tables/symptom_sign_modifying_factor) via `symptom_sign_id`
- [`symptom_sign_modifying_factor`](/docs/tables/symptom_sign_modifying_factor) via `factor_detail`
- [`symptom_sign_precipitating_factor`](/docs/tables/symptom_sign_precipitating_factor) via `symptom_sign_id`
- [`symptom_sign_precipitating_factor_factor_detail`](/docs/tables/symptom_sign_precipitating_factor_factor_detail) via `symptom_sign_id`
- [`symptom_sign_resolving_factor`](/docs/tables/symptom_sign_resolving_factor) via `symptom_sign_id`
- [`symptom_sign_resolving_factor_factor_detail`](/docs/tables/symptom_sign_resolving_factor_factor_detail) via `symptom_sign_id`
- [`symptom_sign_previous_episodes`](/docs/tables/symptom_sign_previous_episodes) via `symptom_sign_id`
- [`symptom_sign_previous_episodes`](/docs/tables/symptom_sign_previous_episodes) via `previous_episodes_id`
- [`symptom_sign_associated_symptom_sign`](/docs/tables/symptom_sign_associated_symptom_sign) via `symptom_sign_id`
- [`symptom_sign_associated_symptom_sign`](/docs/tables/symptom_sign_associated_symptom_sign) via `associated_symptom_sign_id`
- [`symptom_sign_screening_specific_symptom_sign_additional_details`](/docs/tables/symptom_sign_screening_specific_symptom_sign_additional_details) via `symptom_sign_id`

## Child tables

8 tables hang off `symptom_sign`, one row per repetition.

### `symptom_sign_structured_body_site`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_id` | `uuid` → [`symptom_sign`](/docs/tables/symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `anatomical_location_id` | `uuid` | yes | — | — |
| `anatomical_location_circle_id` | `uuid` | yes | — | — |
| `anatomical_location_relative_id` | `uuid` | yes | — | — |

#### Constraints

```sql
check (num_nonnulls(anatomical_location_id, anatomical_location_circle_id, anatomical_location_relative_id) = 1)
```

#### Unique

- `symptom_sign_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `symptom_sign_id` | [`symptom_sign`](/docs/tables/symptom_sign) | cascade |
| `anatomical_location_id` | [`anatomical_location`](/docs/tables/anatomical_location) | no action |
| `anatomical_location_circle_id` | [`anatomical_location_circle`](/docs/tables/anatomical_location_circle) | no action |
| `anatomical_location_relative_id` | [`anatomical_location_relative`](/docs/tables/anatomical_location_relative) | no action |

#### Indexes

- `symptom_sign_structured_body_site_anatomical_location_id_idx` on `anatomical_location_id`
- `symptom_sign_structured_body_site_anatomical_location_ci_06b18b` on `anatomical_location_circle_id`
- `symptom_sign_structured_body_site_anatomical_location_re_23c3a3` on `anatomical_location_relative_id`

### `symptom_sign_modifying_factor`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_id` | `uuid` → [`symptom_sign`](/docs/tables/symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `factor` | `text` | yes | Factor | `/items[at0018]/items[at0019]` |
| `factor_detail` | `uuid` | yes | Factor detail | `/items[at0018]/items[at0197]` |
| `effect`<br />`effect_code`<br />`effect_system`<br />`effect_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Effect | `/items[at0018]/items[at0017]` |
| `description` | `text` | yes | Description | `/items[at0018]/items[at0056]` |

#### Constraints

```sql
check ((effect_code is null and effect_system is null and effect_valueset_id is null and effect is null) or (effect is not null and effect_code is not null and effect_system is not null and effect_valueset_id is not null))
```

#### Unique

- `symptom_sign_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `symptom_sign_id` | [`symptom_sign`](/docs/tables/symptom_sign) | cascade |
| `effect_valueset_id, effect_code, effect_system, effect` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `factor_detail` | [`symptom_sign`](/docs/tables/symptom_sign) | no action |

#### Indexes

- `symptom_sign_modifying_factor_factor_detail_idx` on `factor_detail`

### `symptom_sign_precipitating_factor`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_id` | `uuid` → [`symptom_sign`](/docs/tables/symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `factor` | `text` | yes | Factor | `/items[at0165]/items[at0170]` |
| `time_interval` | `interval` | yes | Time interval | `/items[at0165]/items[at0171]` |
| `description` | `text` | yes | Description | `/items[at0165]/items[at0185]` |

#### Unique

- `symptom_sign_id, position`

#### References

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

### Referenced by

- [`symptom_sign_precipitating_factor_factor_detail`](/docs/tables/symptom_sign_precipitating_factor_factor_detail) via `symptom_sign_precipitating_factor_id`

### `symptom_sign_precipitating_factor_factor_detail`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_precipitating_factor_id` | `uuid` → [`symptom_sign_precipitating_factor`](/docs/tables/symptom_sign_precipitating_factor) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `symptom_sign_id` | `uuid` | no | Factor detail | `/items[at0165]/items[at0154]` |

#### Unique

- `symptom_sign_precipitating_factor_id, position`
- `symptom_sign_precipitating_factor_id, symptom_sign_id`

#### References

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

#### Indexes

- `symptom_sign_precipitating_factor_factor_detail_symptom__45488d` on `symptom_sign_id`

### `symptom_sign_resolving_factor`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_id` | `uuid` → [`symptom_sign`](/docs/tables/symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `factor` | `text` | yes | Factor | `/items[at0190]/items[at0193]` |
| `time_interval` | `interval` | yes | Time interval | `/items[at0190]/items[at0195]` |
| `description` | `text` | yes | Description | `/items[at0190]/items[at0196]` |

#### Unique

- `symptom_sign_id, position`

#### References

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

### Referenced by

- [`symptom_sign_resolving_factor_factor_detail`](/docs/tables/symptom_sign_resolving_factor_factor_detail) via `symptom_sign_resolving_factor_id`

### `symptom_sign_resolving_factor_factor_detail`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_resolving_factor_id` | `uuid` → [`symptom_sign_resolving_factor`](/docs/tables/symptom_sign_resolving_factor) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `symptom_sign_id` | `uuid` | no | Factor detail | `/items[at0190]/items[at0194]` |

#### Unique

- `symptom_sign_resolving_factor_id, position`
- `symptom_sign_resolving_factor_id, symptom_sign_id`

#### References

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

#### Indexes

- `symptom_sign_resolving_factor_factor_detail_symptom_sign_id_idx` on `symptom_sign_id`

### `symptom_sign_previous_episodes`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `symptom_sign_id` | `uuid` → [`symptom_sign`](/docs/tables/symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `previous_episodes_id` | `uuid` | no | Previous episodes | `/items[at0146]` |

#### Unique

- `symptom_sign_id, position`
- `symptom_sign_id, previous_episodes_id`

#### References

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

#### Indexes

- `symptom_sign_previous_episodes_previous_episodes_id_idx` on `previous_episodes_id`

### `symptom_sign_associated_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_id` | `uuid` → [`symptom_sign`](/docs/tables/symptom_sign) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `associated_symptom_sign_id` | `uuid` | no | Associated symptom/sign | `/items[at0063]` |

#### Unique

- `symptom_sign_id, position`
- `symptom_sign_id, associated_symptom_sign_id`

#### References

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

#### Indexes

- `symptom_sign_associated_symptom_sign_associated_symptom__ded20f` on `associated_symptom_sign_id`

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-CLUSTER.symptom_sign.v2/effect` | 3 |
| `org.openehr::openEHR-EHR-CLUSTER.symptom_sign.v2/episodicity` | 3 |
| `org.openehr::openEHR-EHR-CLUSTER.symptom_sign.v2/occurrence` | 2 |
| `org.openehr::openEHR-EHR-CLUSTER.symptom_sign.v2/progression` | 4 |
| `org.openehr::openEHR-EHR-CLUSTER.symptom_sign.v2/severity_category` | 3 |

