---
title: "anatomical_location"
description: "A physical site on or within the human body."
---

A physical site on or within the human body.

**Purpose.** To identify and record structured details about a single physical site on, or within, the human body using macroscopic anatomical terms.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-CLUSTER.anatomical_location.v1` | openEHR | defines this table |

## Columns

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `body_site_name`<br />`body_site_name_code`<br />`body_site_name_system`<br />`body_site_name_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Body site name | `/items[at0001]` |
| `specific_site` | `text` | yes | Specific site | `/items[at0065]` |
| `laterality`<br />`laterality_code`<br />`laterality_system`<br />`laterality_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Laterality | `/items[at0002]` |
| `aspect`<br />`aspect_code`<br />`aspect_system`<br />`aspect_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Aspect | `/items[at0064]` |
| `anatomical_line`<br />`anatomical_line_code`<br />`anatomical_line_system`<br />`anatomical_line_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Anatomical Line | `/items[at0055]` |
| `description` | `text` | yes | Description | `/items[at0023]` |

## Constraints

```sql
check ((body_site_name_code is null and body_site_name_system is null and body_site_name_valueset_id is null) or (body_site_name is not null and body_site_name_code is not null and body_site_name_system is not null and body_site_name_valueset_id is not null))
check ((laterality_code is null and laterality_system is null and laterality_valueset_id is null and laterality is null) or (laterality is not null and laterality_code is not null and laterality_system is not null and laterality_valueset_id is not null))
check ((aspect_code is null and aspect_system is null and aspect_valueset_id is null) or (aspect is not null and aspect_code is not null and aspect_system is not null and aspect_valueset_id is not null))
check ((anatomical_line_code is null and anatomical_line_system is null and anatomical_line_valueset_id is null) or (anatomical_line is not null and anatomical_line_code is not null and anatomical_line_system is not null and anatomical_line_valueset_id is not null))
```

## References

| Columns | Target | On delete |
|---|---|---|
| `body_site_name_valueset_id, body_site_name_code, body_site_name_system, body_site_name` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `laterality_valueset_id, laterality_code, laterality_system, laterality` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `aspect_valueset_id, aspect_code, aspect_system, aspect` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `anatomical_line_valueset_id, anatomical_line_code, anatomical_line_system, anatomical_line` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

31 tables reference `anatomical_location`, via `anatomical_location_id`. The first 15 alphabetically:

- [`adverse_reaction_event_reaction_details`](/docs/tables/adverse_reaction_event_reaction_details) via `anatomical_location_id`
- [`anatomical_location_alternative_structure`](/docs/tables/anatomical_location_alternative_structure) via `anatomical_location_id`
- [`anatomical_location_multimedia_representation`](/docs/tables/anatomical_location_multimedia_representation) via `anatomical_location_id`
- [`blood_pressure_structured_measurement_location`](/docs/tables/blood_pressure_structured_measurement_location) via `anatomical_location_id`
- [`body_segment_area_structured_origin_endpoint`](/docs/tables/body_segment_area_structured_origin_endpoint) via `anatomical_location_id`
- [`body_segment_circumference_structured_origin_endpoint`](/docs/tables/body_segment_circumference_structured_origin_endpoint) via `anatomical_location_id`
- [`body_segment_discrepancy_structured_origin`](/docs/tables/body_segment_discrepancy_structured_origin) via `anatomical_location_id`
- [`body_segment_discrepancy_structured_endpoint`](/docs/tables/body_segment_discrepancy_structured_endpoint) via `anatomical_location_id`
- [`body_segment_length_structured_origin`](/docs/tables/body_segment_length_structured_origin) via `anatomical_location_id`
- [`body_segment_length_structured_endpoint`](/docs/tables/body_segment_length_structured_endpoint) via `anatomical_location_id`
- [`body_temperature_structured_measurement_location`](/docs/tables/body_temperature_structured_measurement_location) via `anatomical_location_id`
- [`capillary_refill`](/docs/tables/capillary_refill) via `structured_measurement_location_anatomical_location`
- [`exposure_screening_specific_exposure_additional_details`](/docs/tables/exposure_screening_specific_exposure_additional_details) via `anatomical_location_id`
- [`imaging_exam_structured_body_site`](/docs/tables/imaging_exam_structured_body_site) via `anatomical_location_id`
- [`imaging_exam_cervix_structured_body_site`](/docs/tables/imaging_exam_cervix_structured_body_site) via `anatomical_location_id`

## Child tables

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

### `anatomical_location_alternative_structure`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `anatomical_location_id` | `uuid` → [`anatomical_location`](/docs/tables/anatomical_location) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `anatomical_location_circle_id` | `uuid` | yes | — | — |
| `anatomical_location_relative_id` | `uuid` | yes | — | — |

#### Constraints

```sql
check (num_nonnulls(anatomical_location_circle_id, anatomical_location_relative_id) = 1)
```

#### Unique

- `anatomical_location_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `anatomical_location_id` | [`anatomical_location`](/docs/tables/anatomical_location) | cascade |
| `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

- `anatomical_location_alternative_structure_anatomical_loc_a61868` on `anatomical_location_circle_id`
- `anatomical_location_alternative_structure_anatomical_loc_a1e6e2` on `anatomical_location_relative_id`

### `anatomical_location_multimedia_representation`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `anatomical_location_id` | `uuid` → [`anatomical_location`](/docs/tables/anatomical_location) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `attachment_id` | `uuid` | no | Multimedia representation | `/items[at0054]` |

#### Unique

- `anatomical_location_id, position`
- `anatomical_location_id, attachment_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `anatomical_location_id` | [`anatomical_location`](/docs/tables/anatomical_location) | cascade |
| `attachment_id` | [`attachment`](/docs/tables/attachment) | restrict |

#### Indexes

- `anatomical_location_multimedia_representation_attachment_id_idx` on `attachment_id`

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-CLUSTER.anatomical_location.v1/anatomical_line` | 7 |
| `org.openehr::openEHR-EHR-CLUSTER.anatomical_location.v1/aspect` | 16 |
| `org.openehr::openEHR-EHR-CLUSTER.anatomical_location.v1/laterality` | 3 |

