---
title: "categorical_loudness_scaling"
description: "A psychophysical method used to assess an individual's perception of loudness to acoustic stimuli of varying levels."
---

A psychophysical method used to assess an individual's perception of loudness to acoustic stimuli of varying levels.

**Purpose.** To record the responses from a categorical loudness scaling assessment and the derived loudness perception curve.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-OBSERVATION.categorical_loudness_scaling.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. | — |
| `frequency_of_test_stimulus_magnitude`<br />`frequency_of_test_stimulus_units` | quantity<br />`numeric`, `text` | yes | Frequency of test stimulus | `/data[at0001]/events[at0002]/data[at0003]/items[at0036]` |
| `tested_side`<br />`tested_side_code`<br />`tested_side_system`<br />`tested_side_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Tested side | `/data[at0001]/events[at0002]/data[at0003]/items[at0027]` |
| `overall_comment` | `text` | yes | Overall comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0133]` |
| `confounding_factors` | `text` | yes | Confounding factors | `/data[at0001]/events[at0002]/state[at0119]/items[at0151]` |
| `scaling_method`<br />`scaling_method_code`<br />`scaling_method_system`<br />`scaling_method_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Scaling method | `/protocol[at0060]/items[at0095]` |
| `presentation_method`<br />`presentation_method_code`<br />`presentation_method_system`<br />`presentation_method_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Presentation method | `/protocol[at0060]/items[at0128]` |
| `presentation_method_details` | `uuid` | yes | Presentation method details | `/protocol[at0060]/items[at0082]` |
| `type_of_test_stimulus`<br />`type_of_test_stimulus_code`<br />`type_of_test_stimulus_system`<br />`type_of_test_stimulus_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Type of test stimulus | `/protocol[at0060]/items[at0075]` |
| `name_of_test_stimulus` | `text` | yes | Name of test stimulus | `/protocol[at0060]/items[at0134]` |
| `test_environment`<br />`test_environment_code`<br />`test_environment_system`<br />`test_environment_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Test environment | `/protocol[at0060]/items[at0069]` |

## Constraints

```sql
check ((frequency_of_test_stimulus_magnitude is null and frequency_of_test_stimulus_units is null) or (frequency_of_test_stimulus_magnitude is not null and frequency_of_test_stimulus_units is not null))
check (frequency_of_test_stimulus_magnitude is null or (frequency_of_test_stimulus_units = 'Hz' and frequency_of_test_stimulus_magnitude between 20 and 20000) or (frequency_of_test_stimulus_units = 'kHz' and frequency_of_test_stimulus_magnitude between 0.125 and 16))
check ((tested_side_code is null and tested_side_system is null and tested_side_valueset_id is null and tested_side is null) or (tested_side is not null and tested_side_code is not null and tested_side_system is not null and tested_side_valueset_id is not null))
check ((scaling_method_code is null and scaling_method_system is null and scaling_method_valueset_id is null) or (scaling_method is not null and scaling_method_code is not null and scaling_method_system is not null and scaling_method_valueset_id is not null))
check ((presentation_method_code is null and presentation_method_system is null and presentation_method_valueset_id is null) or (presentation_method is not null and presentation_method_code is not null and presentation_method_system is not null and presentation_method_valueset_id is not null))
check ((type_of_test_stimulus_code is null and type_of_test_stimulus_system is null and type_of_test_stimulus_valueset_id is null) or (type_of_test_stimulus is not null and type_of_test_stimulus_code is not null and type_of_test_stimulus_system is not null and type_of_test_stimulus_valueset_id is not null))
check ((test_environment_code is null and test_environment_system is null and test_environment_valueset_id is null) or (test_environment is not null and test_environment_code is not null and test_environment_system is not null and test_environment_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 |
| `tested_side_valueset_id, tested_side_code, tested_side_system, tested_side` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `scaling_method_valueset_id, scaling_method_code, scaling_method_system, scaling_method` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `presentation_method_valueset_id, presentation_method_code, presentation_method_system, presentation_method` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `type_of_test_stimulus_valueset_id, type_of_test_stimulus_code, type_of_test_stimulus_system, type_of_test_stimulus` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `test_environment_valueset_id, test_environment_code, test_environment_system, test_environment` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `presentation_method_details` | [`device`](/docs/tables/device) | no action |

## Referenced by

- [`categorical_loudness_scaling_measurement`](/docs/tables/categorical_loudness_scaling_measurement) via `categorical_loudness_scaling_id`
- [`categorical_loudness_scaling_loudness_perception_curve`](/docs/tables/categorical_loudness_scaling_loudness_perception_curve) via `categorical_loudness_scaling_id`
- [`categorical_loudness_scaling_no_test_result`](/docs/tables/categorical_loudness_scaling_no_test_result) via `categorical_loudness_scaling_id`
- [`categorical_loudness_scaling_hearing_device_during_test`](/docs/tables/categorical_loudness_scaling_hearing_device_during_test) via `categorical_loudness_scaling_id`
- [`categorical_loudness_scaling_test_environment_details`](/docs/tables/categorical_loudness_scaling_test_environment_details) via `categorical_loudness_scaling_id`

## Indexes

- `categorical_loudness_scaling_form_id_idx` on `form_id`
- `categorical_loudness_scaling_presentation_method_details_idx` on `presentation_method_details`

## Child tables

6 tables hang off `categorical_loudness_scaling`, one row per repetition.

### `categorical_loudness_scaling_measurement`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `categorical_loudness_scaling_id` | `uuid` → [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `stimulus_level_magnitude`<br />`stimulus_level_units` | quantity<br />`numeric`, `text` | yes | Stimulus level | `/data[at0001]/events[at0002]/data[at0003]/items[at0035]/items[at0110]` |
| `response_category_magnitude`<br />`response_category_units` | quantity<br />`numeric`, `text` | yes | Response category | `/data[at0001]/events[at0002]/data[at0003]/items[at0035]/items[at0111]` |

#### Constraints

```sql
check ((stimulus_level_magnitude is null and stimulus_level_units is null) or (stimulus_level_magnitude is not null and stimulus_level_units is not null))
check (stimulus_level_magnitude is null or (stimulus_level_units = 'dB[SPL]{HL}' and stimulus_level_magnitude between -50 and 200))
check ((response_category_magnitude is null and response_category_units is null) or (response_category_magnitude is not null and response_category_units is not null))
check (response_category_magnitude is null or (response_category_units = '[arb''U]{CU}' and response_category_magnitude between 0 and 1000))
```

#### Unique

- `categorical_loudness_scaling_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `categorical_loudness_scaling_id` | [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | cascade |

### `categorical_loudness_scaling_loudness_perception_curve`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `categorical_loudness_scaling_id` | `uuid` → [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `fit_procedure_name` | `text` | yes | Fit procedure name | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0139]` |
| `curve_equation` | `text` | yes | Curve equation | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0140]` |
| `lower_slope_value_magnitude`<br />`lower_slope_value_units` | quantity<br />`numeric`, `text` | yes | Lower slope value | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0103]` |
| `upper_slope_value_magnitude`<br />`upper_slope_value_units` | quantity<br />`numeric`, `text` | yes | Upper slope value | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0149]` |
| `curve_comment` | `text` | yes | Curve comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0150]` |

#### Constraints

```sql
check ((lower_slope_value_magnitude is null and lower_slope_value_units is null) or (lower_slope_value_magnitude is not null and lower_slope_value_units is not null))
check (lower_slope_value_magnitude is null or (lower_slope_value_units = '[arb''U]{CU}/dB[SPL]{HL}' and lower_slope_value_magnitude between 0 and 100))
check ((upper_slope_value_magnitude is null and upper_slope_value_units is null) or (upper_slope_value_magnitude is not null and upper_slope_value_units is not null))
check (upper_slope_value_magnitude is null or (upper_slope_value_units = '[arb''U]{CU}/dB[SPL]{HL}' and upper_slope_value_magnitude between 0 and 100))
```

#### Unique

- `categorical_loudness_scaling_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `categorical_loudness_scaling_id` | [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | cascade |

### Referenced by

- [`categorical_loudness_scaling_loudness_perception_curve_c_e5225e`](/docs/tables/categorical_loudness_scaling_loudness_perception_curve_c_e5225e) via `categorical_loudness_scaling_loudness_perception_curve_id`

### `categorical_loudness_scaling_loudness_perception_curve_c_e5225e`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `categorical_loudness_scaling_loudness_perception_curve_id` | `uuid` → [`categorical_loudness_scaling_loudness_perception_curve`](/docs/tables/categorical_loudness_scaling_loudness_perception_curve) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `response_category_magnitude`<br />`response_category_units` | quantity<br />`numeric`, `text` | yes | Response category | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0136]/items[at0138]` |
| `stimulus_level_magnitude`<br />`stimulus_level_units` | quantity<br />`numeric`, `text` | yes | Stimulus level | `/data[at0001]/events[at0002]/data[at0003]/items[at0101]/items[at0136]/items[at0137]` |

#### Constraints

```sql
check ((response_category_magnitude is null and response_category_units is null) or (response_category_magnitude is not null and response_category_units is not null))
check (response_category_magnitude is null or (response_category_units = '[arb''U]{CU}' and response_category_magnitude between 0 and 1000))
check ((stimulus_level_magnitude is null and stimulus_level_units is null) or (stimulus_level_magnitude is not null and stimulus_level_units is not null))
check (stimulus_level_magnitude is null or (stimulus_level_units = 'dB[SPL]{HL}' and stimulus_level_magnitude between -50 and 200))
```

#### Unique

- `categorical_loudness_scaling_loudness_perception_curve_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `categorical_loudness_scaling_loudness_perception_curve_id` | [`categorical_loudness_scaling_loudness_perception_curve`](/docs/tables/categorical_loudness_scaling_loudness_perception_curve) | cascade |

### `categorical_loudness_scaling_no_test_result`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `categorical_loudness_scaling_id` | `uuid` → [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `exclusion_exam_id` | `uuid` | no | No test result | `/data[at0001]/events[at0002]/data[at0003]/items[at0157]` |

#### Unique

- `categorical_loudness_scaling_id, position`
- `categorical_loudness_scaling_id, exclusion_exam_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `categorical_loudness_scaling_id` | [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | cascade |
| `exclusion_exam_id` | [`exclusion_exam`](/docs/tables/exclusion_exam) | no action |

#### Indexes

- `categorical_loudness_scaling_no_test_result_exclusion_ex_4c55fd` on `exclusion_exam_id`

### `categorical_loudness_scaling_hearing_device_during_test`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `categorical_loudness_scaling_id` | `uuid` → [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `hearing_device` | `uuid` | yes | Hearing device | `/data[at0001]/events[at0002]/state[at0119]/items[at0142]/items[at0083]` |
| `side_of_hearing_device`<br />`side_of_hearing_device_code`<br />`side_of_hearing_device_system`<br />`side_of_hearing_device_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Side of hearing device | `/data[at0001]/events[at0002]/state[at0119]/items[at0142]/items[at0143]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/events[at0002]/state[at0119]/items[at0142]/items[at0144]` |

#### Constraints

```sql
check ((side_of_hearing_device_code is null and side_of_hearing_device_system is null and side_of_hearing_device_valueset_id is null and side_of_hearing_device is null) or (side_of_hearing_device is not null and side_of_hearing_device_code is not null and side_of_hearing_device_system is not null and side_of_hearing_device_valueset_id is not null))
```

#### Unique

- `categorical_loudness_scaling_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `categorical_loudness_scaling_id` | [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | cascade |
| `side_of_hearing_device_valueset_id, side_of_hearing_device_code, side_of_hearing_device_system, side_of_hearing_device` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `hearing_device` | [`device`](/docs/tables/device) | no action |

#### Indexes

- `categorical_loudness_scaling_hearing_device_during_test__f37fff` on `hearing_device`

### `categorical_loudness_scaling_test_environment_details`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `categorical_loudness_scaling_id` | `uuid` → [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `device_id` | `uuid` | no | Test environment details | `/protocol[at0060]/items[at0147]` |

#### Unique

- `categorical_loudness_scaling_id, position`
- `categorical_loudness_scaling_id, device_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `categorical_loudness_scaling_id` | [`categorical_loudness_scaling`](/docs/tables/categorical_loudness_scaling) | cascade |
| `device_id` | [`device`](/docs/tables/device) | no action |

#### Indexes

- `categorical_loudness_scaling_test_environment_details_de_673607` on `device_id`

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-OBSERVATION.categorical_loudness_scaling.v1/presentation_method` | 4 |
| `org.openehr::openEHR-EHR-OBSERVATION.categorical_loudness_scaling.v1/scaling_method` | 3 |
| `org.openehr::openEHR-EHR-OBSERVATION.categorical_loudness_scaling.v1/side_of_hearing_device` | 2 |
| `org.openehr::openEHR-EHR-OBSERVATION.categorical_loudness_scaling.v1/test_environment` | 3 |
| `org.openehr::openEHR-EHR-OBSERVATION.categorical_loudness_scaling.v1/tested_side` | 3 |
| `org.openehr::openEHR-EHR-OBSERVATION.categorical_loudness_scaling.v1/type_of_test_stimulus` | 9 |

