---
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`<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[at0004]` |
| `agent_name`<br />`agent_name_code`<br />`agent_name_system`<br />`agent_name_valueset_id` | coded text<br />`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`<br />`situation_code`<br />`situation_system`<br />`situation_valueset_id` | coded text<br />`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`

