---
title: "medication_detail"
description: "Details about a medication or component of a medication, including strength, form and details of any specific constituents."
---
Details about a medication or component of a medication, including strength, form and details of any specific constituents.
**Purpose.** To record details about a medication or component of a medication, including strength, form and details of any specific constituents.
## Source
| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-CLUSTER.medication.v2` | openEHR | defines this table |
## Columns
| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `name`
`name_code`
`name_system`
`name_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Name | `/items[at0132]` |
| `form`
`form_code`
`form_system`
`form_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Form | `/items[at0071]` |
| `category`
`category_code`
`category_system`
`category_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Category | `/items[at0142]` |
| `strength_presentation_strength_numerator_magnitude`
`strength_presentation_strength_numerator_units` | quantity
`numeric`, `text` | yes | Strength numerator | `/items[at0152]/items[at0153]` |
| `strength_presentation_strength_denominator_magnitude`
`strength_presentation_strength_denominator_units` | quantity
`numeric`, `text` | yes | Strength denominator | `/items[at0152]/items[at0157]` |
| `strength_concentration_magnitude`
`strength_concentration_units` | quantity
`numeric`, `text` | yes | Strength (concentration) | `/items[at0115]` |
| `manufacturer` | `text` | yes | Manufacturer | `/items[at0151]` |
| `batch_id_value`
`batch_id_system` | text, text
`text`, `text` | yes | Batch ID | `/items[at0150]` |
| `expiry` | `timestamptz` | yes | Expiry | `/items[at0003]` |
| `amount_magnitude`
`amount_units` | quantity
`numeric`, `text` | yes | Amount | `/items[at0139]` |
| `alternate_amount_magnitude`
`alternate_amount_units` | quantity
`numeric`, `text` | yes | Alternate amount | `/items[at0148]` |
| `role`
`role_code`
`role_system`
`role_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Role | `/items[at0127]` |
| `description` | `text` | yes | Description | `/items[at0133]` |
## Constraints
```sql
check ((name_code is null and name_system is null and name_valueset_id is null) or (name is not null and name_code is not null and name_system is not null and name_valueset_id is not null))
check ((form_code is null and form_system is null and form_valueset_id is null) or (form is not null and form_code is not null and form_system is not null and form_valueset_id is not null))
check ((category_code is null and category_system is null and category_valueset_id is null) or (category is not null and category_code is not null and category_system is not null and category_valueset_id is not null))
check ((strength_presentation_strength_numerator_magnitude is null and strength_presentation_strength_numerator_units is null) or (strength_presentation_strength_numerator_magnitude is not null and strength_presentation_strength_numerator_units is not null))
check ((strength_presentation_strength_denominator_magnitude is null and strength_presentation_strength_denominator_units is null) or (strength_presentation_strength_denominator_magnitude is not null and strength_presentation_strength_denominator_units is not null))
check ((strength_concentration_magnitude is null and strength_concentration_units is null) or (strength_concentration_magnitude is not null and strength_concentration_units is not null))
check (batch_id_system is null or batch_id_value is not null)
check ((amount_magnitude is null and amount_units is null) or (amount_magnitude is not null and amount_units is not null))
check ((alternate_amount_magnitude is null and alternate_amount_units is null) or (alternate_amount_magnitude is not null and alternate_amount_units is not null))
check ((role_code is null and role_system is null and role_valueset_id is null) or (role is not null and role_code is not null and role_system is not null and role_valueset_id is not null))
```
## References
| Columns | Target | On delete |
|---|---|---|
| `name_valueset_id, name_code, name_system, name` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `form_valueset_id, form_code, form_system, form` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `category_valueset_id, category_code, category_system, category` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `role_valueset_id, role_code, role_system, role` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
## Referenced by
- [`adverse_reaction_monitoring_substance_details`](/docs/tables/adverse_reaction_monitoring_substance_details) via `medication_detail_id`
- [`medication`](/docs/tables/medication) via `medication_details`
- [`medication_detail_constituent`](/docs/tables/medication_detail_constituent) via `medication_detail_id`
- [`medication_detail_constituent`](/docs/tables/medication_detail_constituent) via `constituent_id`
- [`medication_order_medication_details`](/docs/tables/medication_order_medication_details) via `medication_detail_id`
- [`medication_summary_episode_additional_details`](/docs/tables/medication_summary_episode_additional_details) via `medication_detail_id`
## Child tables
1 table hang off `medication_detail`, one row per repetition.
### `medication_detail_constituent`
Child table — one row per repetition, deleted with its parent.
| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `medication_detail_id` | `uuid` → [`medication_detail`](/docs/tables/medication_detail) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `constituent_id` | `uuid` | no | Constituent | `/items[at0138]` |
#### Unique
- `medication_detail_id, position`
- `medication_detail_id, constituent_id`
#### References
| Columns | Target | On delete |
|---|---|---|
| `medication_detail_id` | [`medication_detail`](/docs/tables/medication_detail) | cascade |
| `constituent_id` | [`medication_detail`](/docs/tables/medication_detail) | no action |
#### Indexes
- `medication_detail_constituent_constituent_id_idx` on `constituent_id`
## Value sets
| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-CLUSTER.medication.v2/category` | 5 |
| `org.openehr::openEHR-EHR-CLUSTER.medication.v2/role` | 3 |