---
title: "tobacco_smoking_summary"
description: "Summary or persistent information about the tobacco smoking habits of an individual."
---

Summary or persistent information about the tobacco smoking habits of an individual.

**Purpose.** To record summary information about the individual's pattern of smoking of tobacco and tobacco-containing products.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-EVALUATION.tobacco_smoking_summary.v2` | 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. | — |
| `overall_status`<br />`overall_status_code`<br />`overall_status_system`<br />`overall_status_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Overall status | `/data[at0001]/items[at0089]` |
| `overall_description` | `text` | yes | Overall description | `/data[at0001]/items[at0043]` |
| `regular_smoking_commenced` | `date` | yes | Regular smoking commenced | `/data[at0001]/items[at0015]` |
| `daily_smoking_commenced` | `date` | yes | Daily smoking commenced | `/data[at0001]/items[at0080]` |
| `overall_quit_date` | `date` | yes | Overall quit date | `/data[at0001]/items[at0016]` |
| `overall_years_of_smoking_magnitude`<br />`overall_years_of_smoking_units` | quantity<br />`numeric`, `text` | yes | Overall years of smoking | `/data[at0001]/items[at0093]` |
| `smoking_index` | `integer` | yes | Smoking index | `/data[at0001]/items[at0094]` |
| `overall_pack_years` | `integer` | yes | Overall pack years | `/data[at0001]/items[at0074]` |
| `overall_comment` | `text` | yes | Overall comment | `/data[at0001]/items[at0019]` |
| `quit_date_definition` | `text` | yes | Quit date definition | `/protocol[at0021]/items[at0071]` |
| `quit_attempt_definition` | `text` | yes | Quit attempt definition | `/protocol[at0021]/items[at0085]` |
| `current_smoker_definition` | `text` | yes | Current smoker definition | `/protocol[at0021]/items[at0075]` |
| `former_smoker_definition` | `text` | yes | Former smoker definition | `/protocol[at0021]/items[at0076]` |
| `never_smoked_definition` | `text` | yes | Never smoked definition | `/protocol[at0021]/items[at0079]` |
| `pack_definition_magnitude`<br />`pack_definition_units` | quantity<br />`numeric`, `text` | yes | Pack definition | `/protocol[at0021]/items[at0072]` |
| `last_updated` | `timestamptz` | yes | Last updated | `/protocol[at0021]/items[at0022]` |

## Constraints

```sql
check ((overall_status_code is null and overall_status_system is null and overall_status_valueset_id is null and overall_status is null) or (overall_status is not null and overall_status_code is not null and overall_status_system is not null and overall_status_valueset_id is not null))
check ((overall_years_of_smoking_magnitude is null and overall_years_of_smoking_units is null) or (overall_years_of_smoking_magnitude is not null and overall_years_of_smoking_units is not null))
check (overall_years_of_smoking_magnitude is null or (overall_years_of_smoking_units = 'a' and overall_years_of_smoking_magnitude >= 0))
check (smoking_index is null or smoking_index >= 0)
check (overall_pack_years is null or overall_pack_years >= 0)
check ((pack_definition_magnitude is null and pack_definition_units is null) or (pack_definition_magnitude is not null and pack_definition_units is not null))
check (pack_definition_magnitude is null or (pack_definition_units = 'g' and pack_definition_magnitude >= 0) or (pack_definition_units = '[oz_av]' and pack_definition_magnitude >= 0))
```

## 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 |
| `overall_status_valueset_id, overall_status_code, overall_status_system, overall_status` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`tobacco_smoking_summary_per_type`](/docs/tables/tobacco_smoking_summary_per_type) via `tobacco_smoking_summary_id`

## Indexes

- `tobacco_smoking_summary_form_id_idx` on `form_id`

## Child tables

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

### `tobacco_smoking_summary_per_type`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `tobacco_smoking_summary_id` | `uuid` → [`tobacco_smoking_summary`](/docs/tables/tobacco_smoking_summary) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `type`<br />`type_code`<br />`type_system`<br />`type_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Type | `/data[at0001]/items[at0029]/items[at0095]` |
| `status`<br />`status_code`<br />`status_system`<br />`status_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Status | `/data[at0001]/items[at0029]/items[at0052]` |
| `description` | `text` | yes | Description | `/data[at0001]/items[at0029]/items[at0053]` |
| `quit_date` | `date` | yes | Quit date | `/data[at0001]/items[at0029]/items[at0014]` |
| `pack_years` | `integer` | yes | Pack years | `/data[at0001]/items[at0029]/items[at0017]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/items[at0029]/items[at0069]` |

#### Constraints

```sql
check ((type_code is null and type_system is null and type_valueset_id is null) or (type is not null and type_code is not null and type_system is not null and type_valueset_id is not null))
check ((status_code is null and status_system is null and status_valueset_id is null and status is null) or (status is not null and status_code is not null and status_system is not null and status_valueset_id is not null))
check (pack_years is null or pack_years >= 0)
```

#### Unique

- `tobacco_smoking_summary_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `tobacco_smoking_summary_id` | [`tobacco_smoking_summary`](/docs/tables/tobacco_smoking_summary) | cascade |
| `type_valueset_id, type_code, type_system, type` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `status_valueset_id, status_code, status_system, status` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

### Referenced by

- [`tobacco_smoking_summary_per_type_per_episode`](/docs/tables/tobacco_smoking_summary_per_type_per_episode) via `tobacco_smoking_summary_per_type_id`

### `tobacco_smoking_summary_per_type_per_episode`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `tobacco_smoking_summary_per_type_id` | `uuid` → [`tobacco_smoking_summary_per_type`](/docs/tables/tobacco_smoking_summary_per_type) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `episode_label` | `text` | yes | Episode label | `/data[at0001]/items[at0029]/items[at0064]/items[at0081]` |
| `status`<br />`status_code`<br />`status_system`<br />`status_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Status | `/data[at0001]/items[at0029]/items[at0064]/items[at0096]` |
| `episode_start_date` | `date` | yes | Episode start date | `/data[at0001]/items[at0029]/items[at0064]/items[at0013]` |
| `episode_end_date` | `date` | yes | Episode end date | `/data[at0001]/items[at0029]/items[at0064]/items[at0082]` |
| `pattern`<br />`pattern_code`<br />`pattern_system`<br />`pattern_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Pattern | `/data[at0001]/items[at0029]/items[at0064]/items[at0030]` |
| `typical_use_units_magnitude`<br />`typical_use_units_units` | quantity<br />`numeric`, `text` | yes | Typical use (units) | `/data[at0001]/items[at0029]/items[at0064]/items[at0023]` |
| `typical_use_mass_magnitude`<br />`typical_use_mass_units` | quantity<br />`numeric`, `text` | yes | Typical use (mass) | `/data[at0001]/items[at0029]/items[at0064]/items[at0065]` |
| `number_of_quit_attempts` | `integer` | yes | Number of quit attempts | `/data[at0001]/items[at0029]/items[at0064]/items[at0025]` |
| `episode_comment` | `text` | yes | Episode comment | `/data[at0001]/items[at0029]/items[at0064]/items[at0087]` |

#### Constraints

```sql
check ((status_code is null and status_system is null and status_valueset_id is null and status is null) or (status is not null and status_code is not null and status_system is not null and status_valueset_id is not null))
check ((pattern_code is null and pattern_system is null and pattern_valueset_id is null) or (pattern is not null and pattern_code is not null and pattern_system is not null and pattern_valueset_id is not null))
check ((typical_use_units_magnitude is null and typical_use_units_units is null) or (typical_use_units_magnitude is not null and typical_use_units_units is not null))
check (typical_use_units_magnitude is null or (typical_use_units_units = '1/d' and typical_use_units_magnitude >= 0) or (typical_use_units_units = '1/wk' and typical_use_units_magnitude >= 0))
check ((typical_use_mass_magnitude is null and typical_use_mass_units is null) or (typical_use_mass_magnitude is not null and typical_use_mass_units is not null))
check (typical_use_mass_magnitude is null or (typical_use_mass_units = 'g/d' and typical_use_mass_magnitude >= 0) or (typical_use_mass_units = 'g/wk' and typical_use_mass_magnitude >= 0) or (typical_use_mass_units = '[oz_av]/d' and typical_use_mass_magnitude >= 0) or (typical_use_mass_units = '[oz_av]/wk' and typical_use_mass_magnitude >= 0))
check (number_of_quit_attempts is null or number_of_quit_attempts >= 0)
```

#### Unique

- `tobacco_smoking_summary_per_type_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `tobacco_smoking_summary_per_type_id` | [`tobacco_smoking_summary_per_type`](/docs/tables/tobacco_smoking_summary_per_type) | cascade |
| `status_valueset_id, status_code, status_system, status` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `pattern_valueset_id, pattern_code, pattern_system, pattern` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-EVALUATION.tobacco_smoking_summary.v2/overall_status` | 3 |
| `org.openehr::openEHR-EHR-EVALUATION.tobacco_smoking_summary.v2/pattern` | 2 |
| `org.openehr::openEHR-EHR-EVALUATION.tobacco_smoking_summary.v2/status` | 3 |
| `org.openehr::openEHR-EHR-EVALUATION.tobacco_smoking_summary.v2/status_at0096` | 2 |
| `org.openehr::openEHR-EHR-EVALUATION.tobacco_smoking_summary.v2/type` | 8 |

