--- title: "medication_order" description: "An order for a medication, vaccine, nutritional product or other therapeutic item for an identified individual." --- An order for a medication, vaccine, nutritional product or other therapeutic item for an identified individual. **Purpose.** To record all aspects of an order of a medication, vaccine, nutritional product or other therapeutic item for an identified individual. ## Source | Model | Leg | Role | |---|---|---| | `openEHR-EHR-INSTRUCTION.medication_order.v3` | 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. | — | | `medication_item`
`medication_item_code`
`medication_item_system`
`medication_item_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Medication item | `/activities[at0001]/description[at0002]/items[at0070]` | | `route`
`route_code`
`route_system`
`route_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Route | `/activities[at0001]/description[at0002]/items[at0091]` | | `body_site`
`body_site_code`
`body_site_system`
`body_site_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Body site | `/activities[at0001]/description[at0002]/items[at0092]` | | `structured_body_site_anatomical_location` | `uuid` | yes | — | — | | `structured_body_site_anatomical_location_circle` | `uuid` | yes | — | — | | `structured_body_site_anatomical_location_relative` | `uuid` | yes | — | — | | `administration_method`
`administration_method_code`
`administration_method_system`
`administration_method_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Administration method | `/activities[at0001]/description[at0002]/items[at0094]` | | `overall_directions_description` | `text` | yes | Overall directions description | `/activities[at0001]/description[at0002]/items[at0009]` | | `parsable_directions_value`
`parsable_directions_formalism` | text, text
`text`, `text` | yes | Parsable directions | `/activities[at0001]/description[at0002]/items[at0047]` | | `specific_directions_description` | `text` | yes | Specific directions description | `/activities[at0001]/description[at0002]/items[at0173]` | | `dosage_justification` | `text` | yes | Dosage justification | `/activities[at0001]/description[at0002]/items[at0174]` | | `medication_safety_exceptional_safety_override` | `boolean` | yes | Exceptional safety override? | `/activities[at0001]/description[at0002]/items[at0062]/items[at0064]` | | `medication_safety_total_daily_effective_dose_purpose` | `text` | yes | Purpose | `/activities[at0001]/description[at0002]/items[at0062]/items[at0150]/items[at0165]` | | `medication_safety_total_daily_effective_dose_t_9a749e_magnitude`
`medication_safety_total_daily_effective_dose_t_9a749e_units` | quantity
`numeric`, `text` | yes | Total daily amount | `/activities[at0001]/description[at0002]/items[at0062]/items[at0150]/items[at0151]` | | `additional_instruction`
`additional_instruction_code`
`additional_instruction_system`
`additional_instruction_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Additional instruction | `/activities[at0001]/description[at0002]/items[at0044]` | | `patient_information`
`patient_information_code`
`patient_information_system`
`patient_information_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Patient information | `/activities[at0001]/description[at0002]/items[at0105]` | | `monitoring_instruction` | `text` | yes | Monitoring instruction | `/activities[at0001]/description[at0002]/items[at0107]` | | `clinical_indication`
`clinical_indication_code`
`clinical_indication_system`
`clinical_indication_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Clinical indication | `/activities[at0001]/description[at0002]/items[at0018]` | | `therapeutic_intent` | `text` | yes | Therapeutic intent | `/activities[at0001]/description[at0002]/items[at0148]` | | `clinician_guidance` | `text` | yes | Clinician guidance | `/activities[at0001]/description[at0002]/items[at0179]` | | `order_details_order_start_date_time` | `timestamptz` | yes | Order start date/time | `/activities[at0001]/description[at0002]/items[at0113]/items[at0012]` | | `order_details_order_stop_date_time` | `timestamptz` | yes | Order stop date/time | `/activities[at0001]/description[at0002]/items[at0113]/items[at0013]` | | `order_details_order_start_criterion` | `text` | yes | Order start criterion | `/activities[at0001]/description[at0002]/items[at0113]/items[at0011]` | | `order_details_order_stop_criterion` | `text` | yes | Order stop criterion | `/activities[at0001]/description[at0002]/items[at0113]/items[at0016]` | | `order_details_administrations_completed` | `integer` | yes | Administrations completed | `/activities[at0001]/description[at0002]/items[at0113]/items[at0060]` | | `order_details_duration_of_order_completed` | `interval` | yes | Duration of order completed | `/activities[at0001]/description[at0002]/items[at0113]/items[at0050]` | | `dispense_directions_dispense_instruction` | `text` | yes | Dispense instruction | `/activities[at0001]/description[at0002]/items[at0129]/items[at0106]` | | `dispense_directions_substitution_direction`
`dispense_directions_substitution_direction_code`
`dispense_directions_substitution_direction_system`
`dispense_directions_substitution_direction_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Substitution direction | `/activities[at0001]/description[at0002]/items[at0129]/items[at0132]` | | `dispense_directions_non_substitution_reason` | `text` | yes | Non-substitution reason | `/activities[at0001]/description[at0002]/items[at0129]/items[at0154]` | | `dispense_directions_priority`
`dispense_directions_priority_code`
`dispense_directions_priority_system`
`dispense_directions_priority_valueset_id` | coded text
`text`, `text`, `text`, `text` | yes | Priority | `/activities[at0001]/description[at0002]/items[at0129]/items[at0139]` | | `dispense_directions_dispensing_start_date` | `timestamptz` | yes | Dispensing start date | `/activities[at0001]/description[at0002]/items[at0129]/items[at0155]` | | `dispense_directions_dispensing_expiry_date` | `timestamptz` | yes | Dispensing expiry date | `/activities[at0001]/description[at0002]/items[at0129]/items[at0161]` | | `comment` | `text` | yes | Comment | `/activities[at0001]/description[at0002]/items[at0167]` | | `order_identifier_value`
`order_identifier_system` | text, text
`text`, `text` | yes | Order identifier | `/protocol[at0005]/items[at0004]` | ## Constraints ```sql check ((medication_item_code is null and medication_item_system is null and medication_item_valueset_id is null) or (medication_item is not null and medication_item_code is not null and medication_item_system is not null and medication_item_valueset_id is not null)) check ((route_code is null and route_system is null and route_valueset_id is null) or (route is not null and route_code is not null and route_system is not null and route_valueset_id is not null)) check ((body_site_code is null and body_site_system is null and body_site_valueset_id is null) or (body_site is not null and body_site_code is not null and body_site_system is not null and body_site_valueset_id is not null)) check (num_nonnulls(structured_body_site_anatomical_location, structured_body_site_anatomical_location_circle, structured_body_site_anatomical_location_relative) <= 1) check ((administration_method_code is null and administration_method_system is null and administration_method_valueset_id is null) or (administration_method is not null and administration_method_code is not null and administration_method_system is not null and administration_method_valueset_id is not null)) check ((parsable_directions_value is null and parsable_directions_formalism is null) or (parsable_directions_value is not null and parsable_directions_formalism is not null)) check ((medication_safety_total_daily_effective_dose_t_9a749e_magnitude is null and medication_safety_total_daily_effective_dose_t_9a749e_units is null) or (medication_safety_total_daily_effective_dose_t_9a749e_magnitude is not null and medication_safety_total_daily_effective_dose_t_9a749e_units is not null)) check ((additional_instruction_code is null and additional_instruction_system is null and additional_instruction_valueset_id is null) or (additional_instruction is not null and additional_instruction_code is not null and additional_instruction_system is not null and additional_instruction_valueset_id is not null)) check ((patient_information_code is null and patient_information_system is null and patient_information_valueset_id is null) or (patient_information is not null and patient_information_code is not null and patient_information_system is not null and patient_information_valueset_id is not null)) check ((clinical_indication_code is null and clinical_indication_system is null and clinical_indication_valueset_id is null) or (clinical_indication is not null and clinical_indication_code is not null and clinical_indication_system is not null and clinical_indication_valueset_id is not null)) check (order_details_administrations_completed is null or order_details_administrations_completed >= 0) check ((dispense_directions_substitution_direction_code is null and dispense_directions_substitution_direction_system is null and dispense_directions_substitution_direction_valueset_id is null and dispense_directions_substitution_direction is null) or (dispense_directions_substitution_direction is not null and dispense_directions_substitution_direction_code is not null and dispense_directions_substitution_direction_system is not null and dispense_directions_substitution_direction_valueset_id is not null)) check ((dispense_directions_priority_code is null and dispense_directions_priority_system is null and dispense_directions_priority_valueset_id is null) or (dispense_directions_priority is not null and dispense_directions_priority_code is not null and dispense_directions_priority_system is not null and dispense_directions_priority_valueset_id is not null)) check (order_identifier_system is null or order_identifier_value 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 | | `medication_item_valueset_id, medication_item_code, medication_item_system, medication_item` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `route_valueset_id, route_code, route_system, route` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `body_site_valueset_id, body_site_code, body_site_system, body_site` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `administration_method_valueset_id, administration_method_code, administration_method_system, administration_method` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `additional_instruction_valueset_id, additional_instruction_code, additional_instruction_system, additional_instruction` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `patient_information_valueset_id, patient_information_code, patient_information_system, patient_information` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `clinical_indication_valueset_id, clinical_indication_code, clinical_indication_system, clinical_indication` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `dispense_directions_substitution_direction_valueset_id, dispense_directions_substitution_direction_code, dispense_directions_substitution_direction_system, dispense_directions_substitution_direction` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `dispense_directions_priority_valueset_id, dispense_directions_priority_code, dispense_directions_priority_system, dispense_directions_priority` | [`valueset_code`](/docs/tables/valueset_code) | restrict | | `structured_body_site_anatomical_location` | [`anatomical_location`](/docs/tables/anatomical_location) | no action | | `structured_body_site_anatomical_location_circle` | [`anatomical_location_circle`](/docs/tables/anatomical_location_circle) | no action | | `structured_body_site_anatomical_location_relative` | [`anatomical_location_relative`](/docs/tables/anatomical_location_relative) | no action | ## Referenced by - [`medication_order_medication_details`](/docs/tables/medication_order_medication_details) via `medication_order_id` - [`medication_order_administration_device`](/docs/tables/medication_order_administration_device) via `medication_order_id` - [`medication_order_structured_dose_and_timing_directions`](/docs/tables/medication_order_structured_dose_and_timing_directions) via `medication_order_id` - [`medication_order_medication_safety_safety_override`](/docs/tables/medication_order_medication_safety_safety_override) via `medication_order_id` - [`medication_order_medication_safety_maximum_dose`](/docs/tables/medication_order_medication_safety_maximum_dose) via `medication_order_id` ## Indexes - `medication_order_form_id_idx` on `form_id` - `medication_order_structured_body_site_anatomical_location_idx` on `structured_body_site_anatomical_location` - `medication_order_structured_body_site_anatomical_locatio_9a7a76` on `structured_body_site_anatomical_location_circle` - `medication_order_structured_body_site_anatomical_locatio_f2eb61` on `structured_body_site_anatomical_location_relative` ## Child tables 5 tables hang off `medication_order`, one row per repetition. ### `medication_order_medication_details` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `medication_order_id` | `uuid` → [`medication_order`](/docs/tables/medication_order) | no | — | — | | `position` | `integer` | no | Order of this row within its parent, from zero. | — | | `medication_detail_id` | `uuid` | no | Medication details | `/activities[at0001]/description[at0002]/items[at0143]` | #### Unique - `medication_order_id, position` - `medication_order_id, medication_detail_id` #### References | Columns | Target | On delete | |---|---|---| | `medication_order_id` | [`medication_order`](/docs/tables/medication_order) | cascade | | `medication_detail_id` | [`medication_detail`](/docs/tables/medication_detail) | no action | #### Indexes - `medication_order_medication_details_medication_detail_id_idx` on `medication_detail_id` ### `medication_order_administration_device` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `medication_order_id` | `uuid` → [`medication_order`](/docs/tables/medication_order) | no | — | — | | `position` | `integer` | no | Order of this row within its parent, from zero. | — | | `device_id` | `uuid` | no | Administration device | `/activities[at0001]/description[at0002]/items[at0095]` | #### Unique - `medication_order_id, position` - `medication_order_id, device_id` #### References | Columns | Target | On delete | |---|---|---| | `medication_order_id` | [`medication_order`](/docs/tables/medication_order) | cascade | | `device_id` | [`device`](/docs/tables/device) | no action | #### Indexes - `medication_order_administration_device_device_id_idx` on `device_id` ### `medication_order_structured_dose_and_timing_directions` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `medication_order_id` | `uuid` → [`medication_order`](/docs/tables/medication_order) | no | — | — | | `position` | `integer` | no | Order of this row within its parent, from zero. | — | | `therapeutic_direction_id` | `uuid` | no | Structured dose and timing directions | `/activities[at0001]/description[at0002]/items[at0177]` | #### Unique - `medication_order_id, position` - `medication_order_id, therapeutic_direction_id` #### References | Columns | Target | On delete | |---|---|---| | `medication_order_id` | [`medication_order`](/docs/tables/medication_order) | cascade | | `therapeutic_direction_id` | [`therapeutic_direction`](/docs/tables/therapeutic_direction) | no action | #### Indexes - `medication_order_structured_dose_and_timing_directions_t_81b978` on `therapeutic_direction_id` ### `medication_order_medication_safety_safety_override` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `medication_order_id` | `uuid` → [`medication_order`](/docs/tables/medication_order) | no | — | — | | `position` | `integer` | no | Order of this row within its parent, from zero. | — | | `overriden_safety_advice` | `text` | yes | Overriden safety advice | `/activities[at0001]/description[at0002]/items[at0062]/items[at0178]/items[at0171]` | | `override_reason` | `text` | yes | Override reason | `/activities[at0001]/description[at0002]/items[at0062]/items[at0178]/items[at0162]` | #### Unique - `medication_order_id, position` #### References | Columns | Target | On delete | |---|---|---| | `medication_order_id` | [`medication_order`](/docs/tables/medication_order) | cascade | ### `medication_order_medication_safety_maximum_dose` Child table — one row per repetition, deleted with its parent. | Column | Type | Null | Description | Source | |---|---|---|---|---| | `id` | `uuid primary key` | no | Primary key. | — | | `medication_order_id` | `uuid` → [`medication_order`](/docs/tables/medication_order) | no | — | — | | `position` | `integer` | no | Order of this row within its parent, from zero. | — | | `maximum_amount_magnitude`
`maximum_amount_units` | quantity
`numeric`, `text` | yes | Maximum amount | `/activities[at0001]/description[at0002]/items[at0062]/items[at0051]/items[at0130]` | | `allowed_period` | `interval` | yes | Allowed period | `/activities[at0001]/description[at0002]/items[at0062]/items[at0051]/items[at0053]` | #### Constraints ```sql check ((maximum_amount_magnitude is null and maximum_amount_units is null) or (maximum_amount_magnitude is not null and maximum_amount_units is not null)) ``` #### Unique - `medication_order_id, position` #### References | Columns | Target | On delete | |---|---|---| | `medication_order_id` | [`medication_order`](/docs/tables/medication_order) | cascade | ## Value sets | Value set | Codes | |---|---| | `org.openehr::openEHR-EHR-INSTRUCTION.medication_order.v3/substitution_direction` | 2 |