--- 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`
`symptom_sign_name_code`
`symptom_sign_name_system`
`symptom_sign_name_valueset_id` | coded text
`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`
`episodicity_code`
`episodicity_system`
`episodicity_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Episodicity | `/items[at0175]` | | `occurrence`
`occurrence_code`
`occurrence_system`
`occurrence_valueset_id` | coded text
`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`
`severity_category_code`
`severity_category_system`
`severity_category_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Severity category | `/items[at0021]` | | `character`
`character_code`
`character_system`
`character_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Character | `/items[at0189]` | | `progression`
`progression_code`
`progression_system`
`progression_valueset_id` | coded text
`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`
`effect_code`
`effect_system`
`effect_valueset_id` | coded text
`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 |