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.