---
title: "specimen_summary"
description: "Summary or persistent information about a single specimen."
---

Summary or persistent information about a single specimen.

**Purpose.** To record summary or persistent record about the use and storage of a single specimen until final disposition.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-EVALUATION.specimen_summary.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. | — |
| `specimen_label` | `text` | yes | Specimen label | `/data[at0001]/items[at0032]` |
| `description` | `text` | yes | Description | `/data[at0001]/items[at0031]` |
| `stored_specimen_id_value`<br />`stored_specimen_id_system` | text, text<br />`text`, `text` | yes | Stored specimen ID | `/data[at0001]/items[at0002]` |
| `storage_started` | `timestamptz` | yes | Storage started | `/data[at0001]/items[at0018]` |
| `number_remaining` | `integer` | yes | Number remaining | `/data[at0001]/items[at0030]` |
| `use_by_date` | `timestamptz` | yes | Use by date | `/data[at0001]/items[at0012]` |
| `legally_expiry_date` | `timestamptz` | yes | Legally expiry date | `/data[at0001]/items[at0033]` |
| `disposal_reason`<br />`disposal_reason_code`<br />`disposal_reason_system`<br />`disposal_reason_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Disposal reason | `/data[at0001]/items[at0010]` |
| `date_of_disposal` | `timestamptz` | yes | Date of disposal | `/data[at0001]/items[at0011]` |
| `specimen_storage` | `text` | yes | Specimen storage | `/data[at0001]/items[at0020]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/items[at0016]` |
| `last_updated` | `timestamptz` | yes | Last updated | `/protocol[at0013]/items[at0014]` |

## Constraints

```sql
check (stored_specimen_id_system is null or stored_specimen_id_value is not null)
check ((disposal_reason_code is null and disposal_reason_system is null and disposal_reason_valueset_id is null) or (disposal_reason is not null and disposal_reason_code is not null and disposal_reason_system is not null and disposal_reason_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 |
| `disposal_reason_valueset_id, disposal_reason_code, disposal_reason_system, disposal_reason` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`specimen_summary_specimen_details`](/docs/tables/specimen_summary_specimen_details) via `specimen_summary_id`
- [`specimen_summary_use`](/docs/tables/specimen_summary_use) via `specimen_summary_id`
- [`specimen_summary_biobank_location`](/docs/tables/specimen_summary_biobank_location) via `specimen_summary_id`

## Indexes

- `specimen_summary_form_id_idx` on `form_id`

## Child tables

3 tables hang off `specimen_summary`, one row per repetition.

### `specimen_summary_specimen_details`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `specimen_summary_id` | `uuid` → [`specimen_summary`](/docs/tables/specimen_summary) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `specimen_id` | `uuid` | no | Specimen details | `/data[at0001]/items[at0008]` |

#### Unique

- `specimen_summary_id, position`
- `specimen_summary_id, specimen_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `specimen_summary_id` | [`specimen_summary`](/docs/tables/specimen_summary) | cascade |
| `specimen_id` | [`specimen`](/docs/tables/specimen) | no action |

#### Indexes

- `specimen_summary_specimen_details_specimen_id_idx` on `specimen_id`

### `specimen_summary_use`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `specimen_summary_id` | `uuid` → [`specimen_summary`](/docs/tables/specimen_summary) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `reason_for_use`<br />`reason_for_use_code`<br />`reason_for_use_system`<br />`reason_for_use_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Reason for use | `/data[at0001]/items[at0022]/items[at0023]` |
| `date_of_use` | `text` | yes | Date of use | `/data[at0001]/items[at0022]/items[at0024]` |
| `number_used` | `integer` | yes | Number used | `/data[at0001]/items[at0022]/items[at0029]` |
| `use_comment` | `text` | yes | Use comment | `/data[at0001]/items[at0022]/items[at0027]` |

#### Constraints

```sql
check ((reason_for_use_code is null and reason_for_use_system is null and reason_for_use_valueset_id is null) or (reason_for_use is not null and reason_for_use_code is not null and reason_for_use_system is not null and reason_for_use_valueset_id is not null))
```

#### Unique

- `specimen_summary_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `specimen_summary_id` | [`specimen_summary`](/docs/tables/specimen_summary) | cascade |
| `reason_for_use_valueset_id, reason_for_use_code, reason_for_use_system, reason_for_use` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

### `specimen_summary_biobank_location`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `specimen_summary_id` | `uuid` → [`specimen_summary`](/docs/tables/specimen_summary) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `organization_id` | `uuid` | no | Biobank location | `/data[at0001]/items[at0009]` |

#### Unique

- `specimen_summary_id, position`
- `specimen_summary_id, organization_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `specimen_summary_id` | [`specimen_summary`](/docs/tables/specimen_summary) | cascade |
| `organization_id` | [`organization`](/docs/tables/organization) | no action |

#### Indexes

- `specimen_summary_biobank_location_organization_id_idx` on `organization_id`

