---
title: "dosage"
description: "The combination of a medication amount and administration timing for a single day, in the context of a medication order or medication management."
---

The combination of a medication amount and administration timing for a single day, in the context of a medication order or medication management.

**Purpose.** To record the combination of a medication amount and the administration timing within a single day, as part of a medication order or medication management or for other appropriate therapeutic/prescribable items.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-CLUSTER.dosage.v2` | openEHR | defines this table |

## Columns

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `dosage_sequence` | `integer` | yes | Dosage sequence | `/items[at0164]` |
| `dose_magnitude`<br />`dose_units` | quantity<br />`numeric`, `text` | yes | Dose | `/items[at0144]` |
| `dose_formula_magnitude`<br />`dose_formula_units` | quantity<br />`numeric`, `text` | yes | Dose formula | `/items[at0135]` |
| `dose_description` | `text` | yes | Dose description | `/items[at0178]` |
| `administration_rate_magnitude`<br />`administration_rate_units` | quantity<br />`numeric`, `text` | yes | Administration rate | `/items[at0134]` |
| `administration_duration` | `interval` | yes | Administration duration | `/items[at0102]` |
| `alternate_dose_magnitude`<br />`alternate_dose_units` | quantity<br />`numeric`, `text` | yes | Alternate dose | `/items[at0176]` |

## Constraints

```sql
check (dosage_sequence is null or dosage_sequence >= 1)
check ((dose_magnitude is null and dose_units is null) or (dose_magnitude is not null and dose_units is not null))
check ((dose_formula_magnitude is null and dose_formula_units is null) or (dose_formula_magnitude is not null and dose_formula_units is not null))
check ((administration_rate_magnitude is null and administration_rate_units is null) or (administration_rate_magnitude is not null and administration_rate_units is not null))
check (administration_rate_magnitude is null or (administration_rate_units = 'l/h' and administration_rate_magnitude >= 0) or (administration_rate_units = 'ml/min' and administration_rate_magnitude >= 0) or (administration_rate_units = 'ml/s' and administration_rate_magnitude >= 0) or (administration_rate_units = 'ml/h' and administration_rate_magnitude >= 0))
check ((alternate_dose_magnitude is null and alternate_dose_units is null) or (alternate_dose_magnitude is not null and alternate_dose_units is not null))
```

## Referenced by

- [`dosage_daily_timing`](/docs/tables/dosage_daily_timing) via `dosage_id`
- [`medication`](/docs/tables/medication) via `amount`
- [`medication_screening_specific_medication_additional_details`](/docs/tables/medication_screening_specific_medication_additional_details) via `dosage_id`
- [`medication_summary_episode_additional_details`](/docs/tables/medication_summary_episode_additional_details) via `dosage_id`
- [`therapeutic_direction_dosage`](/docs/tables/therapeutic_direction_dosage) via `dosage_id`

## Child tables

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

### `dosage_daily_timing`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `dosage_id` | `uuid` → [`dosage`](/docs/tables/dosage) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `timing_daily_id` | `uuid` | no | Daily timing | `/items[at0037]` |

#### Unique

- `dosage_id, position`
- `dosage_id, timing_daily_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `dosage_id` | [`dosage`](/docs/tables/dosage) | cascade |
| `timing_daily_id` | [`timing_daily`](/docs/tables/timing_daily) | no action |

#### Indexes

- `dosage_daily_timing_timing_daily_id_idx` on `timing_daily_id`

