---
title: "specimen_container"
description: "Details of a container used to hold, transport and/or archive a specimen for laboratory examination."
---
Details of a container used to hold, transport and/or archive a specimen for laboratory examination.
**Purpose.** To record details of a container used to hold, transport and/or archive a specimen for laboratory examination.
## Source
| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-CLUSTER.specimen_container.v1` | openEHR | defines this table |
## Columns
| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `container_type`
`container_type_code`
`container_type_system`
`container_type_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Container type | `/items[at0005]` |
| `container_id_value`
`container_id_system` | text, text
`text`, `text` | yes | Container ID | `/items[at0003]` |
| `description` | `text` | yes | Description | `/items[at0013]` |
| `components` | `text` | yes | Components | `/items[at0037]` |
| `additive_s`
`additive_s_code`
`additive_s_system`
`additive_s_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Additive/s | `/items[at0026]` |
| `capacity_magnitude`
`capacity_units` | quantity
`numeric`, `text` | yes | Capacity | `/items[at0035]` |
| `minimum_volum_magnitude`
`minimum_volum_units` | quantity
`numeric`, `text` | yes | Minimum volum | `/items[at0038]` |
| `comment` | `text` | yes | Comment | `/items[at0036]` |
## Constraints
```sql
check ((container_type_code is null and container_type_system is null and container_type_valueset_id is null) or (container_type is not null and container_type_code is not null and container_type_system is not null and container_type_valueset_id is not null))
check (container_id_system is null or container_id_value is not null)
check ((additive_s_code is null and additive_s_system is null and additive_s_valueset_id is null) or (additive_s is not null and additive_s_code is not null and additive_s_system is not null and additive_s_valueset_id is not null))
check ((capacity_magnitude is null and capacity_units is null) or (capacity_magnitude is not null and capacity_units is not null))
check ((minimum_volum_magnitude is null and minimum_volum_units is null) or (minimum_volum_magnitude is not null and minimum_volum_units is not null))
```
## References
| Columns | Target | On delete |
|---|---|---|
| `container_type_valueset_id, container_type_code, container_type_system, container_type` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `additive_s_valueset_id, additive_s_code, additive_s_system, additive_s` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
## Referenced by
- [`specimen_container_details`](/docs/tables/specimen_container_details) via `specimen_container_id`
- [`specimen_container_contents`](/docs/tables/specimen_container_contents) via `specimen_container_id`
- [`specimen_container_contents`](/docs/tables/specimen_container_contents) via `contents_specimen_container_id`
## Child tables
1 table hang off `specimen_container`, one row per repetition.
### `specimen_container_contents`
Child table — one row per repetition, deleted with its parent.
| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `specimen_container_id` | `uuid` → [`specimen_container`](/docs/tables/specimen_container) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `specimen_id` | `uuid` | yes | — | — |
| `contents_specimen_container_id` | `uuid` | yes | — | — |
#### Constraints
```sql
check (num_nonnulls(specimen_id, contents_specimen_container_id) = 1)
```
#### Unique
- `specimen_container_id, position`
#### References
| Columns | Target | On delete |
|---|---|---|
| `specimen_container_id` | [`specimen_container`](/docs/tables/specimen_container) | cascade |
| `specimen_id` | [`specimen`](/docs/tables/specimen) | no action |
| `contents_specimen_container_id` | [`specimen_container`](/docs/tables/specimen_container) | no action |
#### Indexes
- `specimen_container_contents_specimen_id_idx` on `specimen_id`
- `specimen_container_contents_contents_specimen_container_id_idx` on `contents_specimen_container_id`