---
title: "body_surface_area"
description: "The measured or calculated surface area of a human body."
---

The measured or calculated surface area of a human body.

**Purpose.** To record the measured or calculated surface area of a human body.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-OBSERVATION.body_surface_area.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. | — |
| `body_surface_area_magnitude`<br />`body_surface_area_units` | quantity<br />`numeric`, `text` | yes | Body Surface Area | `/data[at0001]/events[at0002]/data[at0003]/items[at0004]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0019]` |
| `confounding_factors` | `text` | yes | Confounding factors | `/data[at0001]/events[at0002]/state[at0020]/items[at0021]` |
| `method`<br />`method_code`<br />`method_system`<br />`method_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Method | `/protocol[at0005]/items[at0009]` |
| `formula`<br />`formula_code`<br />`formula_system`<br />`formula_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Formula | `/protocol[at0005]/items[at0006]` |

## Constraints

```sql
check ((body_surface_area_magnitude is null and body_surface_area_units is null) or (body_surface_area_magnitude is not null and body_surface_area_units is not null))
check (body_surface_area_magnitude is null or (body_surface_area_units = 'm2' and body_surface_area_magnitude >= 0))
check ((method_code is null and method_system is null and method_valueset_id is null and method is null) or (method is not null and method_code is not null and method_system is not null and method_valueset_id is not null))
check ((formula_code is null and formula_system is null and formula_valueset_id is null) or (formula is not null and formula_code is not null and formula_system is not null and formula_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 |
| `method_valueset_id, method_code, method_system, method` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `formula_valueset_id, formula_code, formula_system, formula` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`body_surface_area_device`](/docs/tables/body_surface_area_device) via `body_surface_area_id`

## Indexes

- `body_surface_area_form_id_idx` on `form_id`

## Child tables

1 table hang off `body_surface_area`, one row per repetition.

### `body_surface_area_device`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `body_surface_area_id` | `uuid` → [`body_surface_area`](/docs/tables/body_surface_area) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `device_id` | `uuid` | no | Device | `/protocol[at0005]/items[at0008]` |

#### Unique

- `body_surface_area_id, position`
- `body_surface_area_id, device_id`

#### References

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

#### Indexes

- `body_surface_area_device_device_id_idx` on `device_id`

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-OBSERVATION.body_surface_area.v1/formula` | 7 |
| `org.openehr::openEHR-EHR-OBSERVATION.body_surface_area.v1/method` | 2 |

