--- title: "exposure_screening" description: "Series of questions and associated answers used to screen for potential exposure to a chemical, physical or biological agent which has caused or may cause harm to an individual." --- Series of questions and associated answers used to screen for potential exposure to a chemical, physical or biological agent which has caused or may cause harm to an individual. **Purpose.** To create a framework for recording answers to pre-defined screening questions about situations or events where the individual has been, or may have been, exposed to a harmful agent. ## Source | Model | Leg | Role | |---|---|---| | `openEHR-EHR-OBSERVATION.exposure_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`
`screening_purpose_code`
`screening_purpose_system`
`screening_purpose_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Screening purpose | `/data[at0001]/events[at0002]/data[at0003]/items[at0004]` | | `agent_name`
`agent_name_code`
`agent_name_system`
`agent_name_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Agent name | `/data[at0001]/events[at0002]/data[at0003]/items[at0020]` | | `any_exposure` | `boolean` | yes | Any exposure? | `/data[at0001]/events[at0002]/data[at0003]/items[at0005]` | | `description` | `text` | yes | Description | `/data[at0001]/events[at0002]/data[at0003]/items[at0022]` | ## 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)) check ((agent_name_code is null and agent_name_system is null and agent_name_valueset_id is null) or (agent_name is not null and agent_name_code is not null and agent_name_system is not null and agent_name_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 | | `agent_name_valueset_id, agent_name_code, agent_name_system, agent_name` | [`valueset_code`](/docs/tables/valueset_code) | restrict | ## Referenced by - [`exposure_screening_specific_exposure`](/docs/tables/exposure_screening_specific_exposure) via `exposure_screening_id` ## Indexes - `exposure_screening_form_id_idx` on `form_id` ## Child tables 2 tables hang off `exposure_screening`, one row per repetition. ### `exposure_screening_specific_exposure` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `exposure_screening_id` | `uuid` → [`exposure_screening`](/docs/tables/exposure_screening) | no | — | — | | `position` | `integer` | no | Order of this row within its parent, from zero. | — | | `situation`
`situation_code`
`situation_system`
`situation_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Situation | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0010]` | | `presence` | `boolean` | yes | Presence? | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0011]` | | `timing` | `timestamptz` | yes | Timing | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0015]` | | `comment` | `text` | yes | Comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0009]/items[at0017]` | #### Constraints ```sql check ((situation_code is null and situation_system is null and situation_valueset_id is null) or (situation is not null and situation_code is not null and situation_system is not null and situation_valueset_id is not null)) ``` #### Unique - `exposure_screening_id, position` #### References | Columns | Target | On delete | |---|---|---| | `exposure_screening_id` | [`exposure_screening`](/docs/tables/exposure_screening) | cascade | | `situation_valueset_id, situation_code, situation_system, situation` | [`valueset_code`](/docs/tables/valueset_code) | restrict | ### Referenced by - [`exposure_screening_specific_exposure_additional_details`](/docs/tables/exposure_screening_specific_exposure_additional_details) via `exposure_screening_specific_exposure_id` ### `exposure_screening_specific_exposure_additional_details` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `exposure_screening_specific_exposure_id` | `uuid` → [`exposure_screening_specific_exposure`](/docs/tables/exposure_screening_specific_exposure) | 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 | — | — | | `organization_id` | `uuid` | yes | — | — | | `person_id` | `uuid` | yes | — | — | #### Constraints ```sql check (num_nonnulls(anatomical_location_id, anatomical_location_circle_id, anatomical_location_relative_id, organization_id, person_id) = 1) ``` #### Unique - `exposure_screening_specific_exposure_id, position` #### References | Columns | Target | On delete | |---|---|---| | `exposure_screening_specific_exposure_id` | [`exposure_screening_specific_exposure`](/docs/tables/exposure_screening_specific_exposure) | 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 | | `organization_id` | [`organization`](/docs/tables/organization) | no action | | `person_id` | [`person`](/docs/tables/person) | no action | #### Indexes - `exposure_screening_specific_exposure_additional_details__da0963` on `anatomical_location_id` - `exposure_screening_specific_exposure_additional_details__be1747` on `anatomical_location_circle_id` - `exposure_screening_specific_exposure_additional_details__3bc69d` on `anatomical_location_relative_id` - `exposure_screening_specific_exposure_additional_details__1d66bd` on `organization_id` - `exposure_screening_specific_exposure_additional_details__4e7c23` on `person_id`