Design Overview
A FHIR Dosage structure will always be included within the relevant FHIR Resource, e.g. MedicationRequest, MedicationDispense, or MedicationStatement. The resource defines the medication, the Dosage defined the dose.
All references to medication must use the NHS standard of dm+d, which is published as an independent terminology product using XML format data as well as being included in the SNOMED-CT UK Drug extension.
The dm+d code used within a medication resource will vary depending on the level of detail required by the prescriber. The most generic instruction would specify a Virtual Therapeutic Moiety (VTM) plus a dosage instruction.
The most specific instruction, for the purposes of prescribing, would specify an Actual Medicinal Product (AMP) plus a dosage instruction.
NHS dm+d concepts and impact on use of Dosage
Virtual Therapeutic Moiety (VTM)
The most generic representation of a medication that only conveys the medication, e.g. Paracetamol.
The Dosage would typically express the dose as a weight or volume of medication, plus all other instructions required by the prescriber.
For example;
100 milligrams - twice a day - for 7 days
instead of
2 tablets - twice a day - for 7 days (as when using a VTM the strength of a tablet would not be known)
| MedicationRequest.id[0] | 0e79d939-bca0-4970-9e26-8c12e9a45620 |
| MedicationRequest.contained[0].id[0] | med1 |
| MedicationRequest.contained[0].code[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.contained[0].code[0].coding[0].code[0] | 90332006 |
| MedicationRequest.contained[0].code[0].coding[0].display[0] | Paracetamol |
| MedicationRequest.status[0] | active |
| MedicationRequest.intent[0] | order |
| MedicationRequest.medication[0].reference[0] | #med1 |
| MedicationRequest.subject[0].identifier[0].system[0] | https://fhir.nhs.uk/Id/nhs-number |
| MedicationRequest.subject[0].identifier[0].value[0] | 9999999999 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].frequencyMax[0] | 4 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0] | 1 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0] | d |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].code[0] | 26643006 |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].display[0] | oral |
| MedicationRequest.dosageInstruction[0].dose[0].value[0] | 500 |
| MedicationRequest.dosageInstruction[0].dose[0].unit[0] | milligram |
| MedicationRequest.dosageInstruction[0].dose[0].system[0] | http://unitsofmeasure.org |
| MedicationRequest.dosageInstruction[0].dose[0].code[0] | mg |
| MedicationRequest |
| id : 0e79d939-bca0-4970-9e26-8c12e9a45620 |
| contained |
| id : med1 |
| code |
| coding |
| system : http://snomed.info/sct |
| code : 90332006 |
| display : Paracetamol |
| status : active |
| intent : order |
| medication |
| reference : #med1 |
| subject |
| identifier |
| system : https://fhir.nhs.uk/Id/nhs-number |
| value : 9999999999 |
| dosageInstruction |
| timing |
| repeat |
| frequencyMax : 4 |
| period : 1 |
| periodUnit : d |
| route |
| coding |
| system : http://snomed.info/sct |
| code : 26643006 |
| display : oral |
| dose |
| value : 500 |
| unit : milligram |
| system : http://unitsofmeasure.org |
| code : mg |
Virtual Therapeutic Moiety (VTM) + Form
The prescriber may give a specific instruction for the form of the medication, e.g. suppository, within the Medication.form element.
The Dosage would typically express the dose as a weight or volume of medication, plus the form and other instructions required by the prescriber.
Note: The FHIR Medication resource can only include a single form as a CodeableConcept element. The Dosage structure does not contain an coded element that can convey a form.
| MedicationRequest.id[0] | 242cbc01-3c9e-4811-b42d-b4b0a5c32678 |
| MedicationRequest.contained[0].id[0] | med1 |
| MedicationRequest.contained[0].code[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.contained[0].code[0].coding[0].code[0] | 90332006 |
| MedicationRequest.contained[0].code[0].coding[0].display[0] | Paracetamol |
| MedicationRequest.contained[0].form[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.contained[0].form[0].coding[0].code[0] | 385194003 |
| MedicationRequest.contained[0].form[0].coding[0].display[0] | suppository |
| MedicationRequest.intent[0] | order |
| MedicationRequest.medication[0].reference[0] | #med1 |
| MedicationRequest.subject[0].identifier[0].system[0] | https://fhir.nhs.uk/Id/nhs-number |
| MedicationRequest.subject[0].identifier[0].value[0] | 9999999999 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].frequencyMax[0] | 4 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0] | 1 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0] | d |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].code[0] | 26643006 |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].display[0] | oral |
| MedicationRequest.dosageInstruction[0].dose[0].value[0] | 500 |
| MedicationRequest.dosageInstruction[0].dose[0].unit[0] | milligram |
| MedicationRequest.dosageInstruction[0].dose[0].system[0] | http://unitsofmeasure.org |
| MedicationRequest.dosageInstruction[0].dose[0].code[0] | mg |
| MedicationRequest |
| id : 242cbc01-3c9e-4811-b42d-b4b0a5c32678 |
| contained |
| id : med1 |
| code |
| coding |
| system : http://snomed.info/sct |
| code : 90332006 |
| display : Paracetamol |
| form |
| coding |
| system : http://snomed.info/sct |
| code : 385194003 |
| display : suppository |
| intent : order |
| medication |
| reference : #med1 |
| subject |
| identifier |
| system : https://fhir.nhs.uk/Id/nhs-number |
| value : 9999999999 |
| dosageInstruction |
| timing |
| repeat |
| frequencyMax : 4 |
| period : 1 |
| periodUnit : d |
| route |
| coding |
| system : http://snomed.info/sct |
| code : 26643006 |
| display : oral |
| dose |
| value : 500 |
| unit : milligram |
| system : http://unitsofmeasure.org |
| code : mg |
Virtual Therapeutic Moiety (VTM) + Trade Family
The use of a VTM with a Trade Family is a use case not currently supported within FHIR STU3, or through a UK extension. There is currently no part of the Medication resource or the Dosage structure that is suitable to convey a coded Trade Family.
Virtual Medicinal Product (VMP)
A VMP comprises of a medication + strength + form.
The Dosage would typically express the dose using the dm+d unit form dose unit of measure, plus all other instructions required by the prescriber.
For example;
2 tablets - twice a day - for 7 days
instead of
100 milligrams - twice a day - for 7 days (if the VMP has a strength of 50mg per tablet)
| MedicationRequest.id[0] | 74760139-928c-4d3e-9659-ee2853419f75 |
| MedicationRequest.contained[0].id[0] | med1 |
| MedicationRequest.contained[0].code[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.contained[0].code[0].coding[0].code[0] | 319996000 |
| MedicationRequest.contained[0].code[0].coding[0].display[0] | Simvastatin 10mg tablets |
| MedicationRequest.intent[0] | order |
| MedicationRequest.medication[0].reference[0] | #med1 |
| MedicationRequest.subject[0].identifier[0].system[0] | https://fhir.nhs.uk/Id/nhs-number |
| MedicationRequest.subject[0].identifier[0].value[0] | 9999999999 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].frequency[0] | 1 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0] | 1 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0] | d |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].code[0] | 26643006 |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].display[0] | oral |
| MedicationRequest.dosageInstruction[0].dose[0].value[0] | 40 |
| MedicationRequest.dosageInstruction[0].dose[0].unit[0] | milligram |
| MedicationRequest.dosageInstruction[0].dose[0].system[0] | http://unitsofmeasure.org |
| MedicationRequest.dosageInstruction[0].dose[0].code[0] | mg |
| MedicationRequest |
| id : 74760139-928c-4d3e-9659-ee2853419f75 |
| contained |
| id : med1 |
| code |
| coding |
| system : http://snomed.info/sct |
| code : 319996000 |
| display : Simvastatin 10mg tablets |
| intent : order |
| medication |
| reference : #med1 |
| subject |
| identifier |
| system : https://fhir.nhs.uk/Id/nhs-number |
| value : 9999999999 |
| dosageInstruction |
| timing |
| repeat |
| frequency : 1 |
| period : 1 |
| periodUnit : d |
| route |
| coding |
| system : http://snomed.info/sct |
| code : 26643006 |
| display : oral |
| dose |
| value : 40 |
| unit : milligram |
| system : http://unitsofmeasure.org |
| code : mg |
Virtual Medicinal Product (VMP) + Qty/UoM
A VMP plus a MedicationRequest.dispenseRequest would be typical for primary care prescription instructions as used by the Electronic Prescription Service.
The Dosage would typically express the dose using the dm+d unit form dose unit of measure, the requested quantity, plus all other instructions required by the prescriber.
For example;
2 tablets - twice a day - 14 tablets
Actual Medicinal Product (AMP)
An AMP comprises of a medication + strength + form + manufacturer.
The Dosage would be as per the VMP.
| MedicationRequest.id[0] | 4a6a7910-a3ed-438f-947a-a6fd27c03a79 |
| MedicationRequest.contained[0].id[0] | med1 |
| MedicationRequest.contained[0].code[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.contained[0].code[0].coding[0].code[0] | 4896211000001101 |
| MedicationRequest.contained[0].code[0].coding[0].display[0] | Simvador 10mg tablets (Discovery Pharmaceuticals) |
| MedicationRequest.intent[0] | order |
| MedicationRequest.medication[0].reference[0] | #med1 |
| MedicationRequest.subject[0].identifier[0].system[0] | https://fhir.nhs.uk/Id/nhs-number |
| MedicationRequest.subject[0].identifier[0].value[0] | 9999999999 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0] | 1 |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0] | d |
| MedicationRequest.dosageInstruction[0].timing[0].repeat[0].when[0] | EVE |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].system[0] | http://snomed.info/sct |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].code[0] | 26643006 |
| MedicationRequest.dosageInstruction[0].route[0].coding[0].display[0] | oral |
| MedicationRequest.dosageInstruction[0].dose[0].value[0] | 10 |
| MedicationRequest.dosageInstruction[0].dose[0].unit[0] | milligram |
| MedicationRequest.dosageInstruction[0].dose[0].system[0] | http://unitsofmeasure.org |
| MedicationRequest.dosageInstruction[0].dose[0].code[0] | mg |
| MedicationRequest |
| id : 4a6a7910-a3ed-438f-947a-a6fd27c03a79 |
| contained |
| id : med1 |
| code |
| coding |
| system : http://snomed.info/sct |
| code : 4896211000001101 |
| display : Simvador 10mg tablets (Discovery Pharmaceuticals) |
| intent : order |
| medication |
| reference : #med1 |
| subject |
| identifier |
| system : https://fhir.nhs.uk/Id/nhs-number |
| value : 9999999999 |
| dosageInstruction |
| timing |
| repeat |
| period : 1 |
| periodUnit : d |
| when : EVE |
| route |
| coding |
| system : http://snomed.info/sct |
| code : 26643006 |
| display : oral |
| dose |
| value : 10 |
| unit : milligram |
| system : http://unitsofmeasure.org |
| code : mg |
Actual Medicinal Product (AMP) + Qty/UoM
The Dosage would be as per the VMP + Qty/UoM.