Global Core Electronic Medicinal Product Information (ePI), published by HL7 International - Biomedical Research & Regulation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/emedicinal-product-info/ and changes regularly. See the Directory of published versions
This section provides guidance on implementing structured dose syntax within an ePI system using a custom FHIR R5 profile for the ClinicalUseDefinition
resource, which incorporates the FHIR R5 Dosage
structure. The implementation ensures interoperability across healthcare systems, supports both product-based and dose-based prescribing. These instructions were adapted from the NHS Dose Syntax Implementation Guide.
Structured dose syntax in ePI systems enables precise, machine-readable representation of dosage instructions for medicinal products. This is critical for:
The FHIR R5 Dosage
structure encodes dosage instructions, supporting simple and complex dosing scenarios. To integrate dosage instructions into the ePI, a custom profile for ClinicalUseDefinition
is defined to include Dosage
as a standard element, linked to a MedicinalProductDefinition
for product-centric information.
note: Instructions for product manipulation or transformation (e.g., reconstitution) are Out-of-Scope.
Before implementing structured dose syntax, ensure familiarity with:
The ClinicalUseDefinition
resource captures clinical particulars (e.g., indications, dosage recommendations) for a medicinal product. By default, it does not include a Dosage
element. To address this, a custom FHIR R5 profile, EPIDosageClinicalUseDefinition
, is defined to add a dosage
element of type Dosage
(0..*). This profile ensures dosage instructions are a first-class component of the ePI, improving clarity and interoperability compared to using extensions.
The FHIR R5 Dosage
structure includes elements to describe dosage instructions comprehensively. Below are the key components relevant to ePI implementation, with their purpose and usage:
Follow these steps to integrate structured dose syntax into an ePI system using the custom EPIDosageClinicalUseDefinition
profile:
MedicinalProductDefinition
to define the medicinal product (e.g., "Paracetamol 500mg tablets").ClinicalUseDefinition
to specify clinical particulars, including dosage instructions.ClinicalUseDefinition.dosage.text
to "Take 1 tablet daily".dosage.timing
to specify frequency: 1
, period: 1
, periodUnit: day
.dosage.doseAndRate.doseQuantity
to value: 1
, unit: tablet
.dosage.route
to a coded value for "oral" (e.g., SNOMED-CT).dosage
entries with sequence
to indicate order.timing
for each step (e.g., frequency: 4
, period: 1
, periodUnit: day
for every 6 hours).additionalInstruction
for conditions like "Take with food" (use coded values where possible).MedicinalProductDefinition
. Include dosage.doseAndRate.doseQuantity
with the product unit (e.g., "2 tablets").dosage.doseAndRate.doseQuantity
with the active ingredient dose (e.g., "1000 mg").dosage.patientInstruction
with clear, non-technical language (e.g., "Take one tablet every morning with breakfast").dosage.timing
to generate reminders in patient apps (e.g., schedule notifications for "08:00 AM daily").dosage.maxDosePerPeriod
and dosage.maxDosePerAdministration
to alert patients or clinicians about potential overdosing.ClinicalUseDefinition
and Dosage
structures against FHIR R5 using validation tools.dosage.route
, dosage.site
, dosage.method
, and dosage.additionalInstruction
.dosage.asNeeded
to true
and use dosage.asNeededFor
for conditions (e.g., "pain").dosage.doseAndRate.rateQuantity
for continuous administration (e.g., "10 ml/hour").doseRange
instead of doseQuantity
for flexible doses (e.g., "1-2 tablets").Below are examples of a MedicinalProductDefinition
and a profiled ClinicalUseDefinition
with an extension (as an interim approach) for "Paracetamol 500mg, take 2 tablets every 6 hours for 3 days, maximum 8 tablets per day". Note that in the custom profile, the dosage
element would replace the extension, but the extension is included here as an interim example.
{
"resourceType": "MedicinalProductDefinition",
"id": "paracetamol-500mg",
"name": [
{
"productName": "Paracetamol 500mg Tablets"
}
],
"clinicalUseIssue": [
{
"reference": "ClinicalUseDefinition/paracetamol-dosage"
}
]
}
{
"resourceType": "ClinicalUseDefinition",
"id": "paracetamol-dosage",
"meta": {
"profile": [
"http://example.org/fhir/StructureDefinition/EPIDosageClinicalUseDefinition"
]
},
"type": "indication",
"subject": [
{
"reference": "MedicinalProductDefinition/paracetamol-500mg"
}
],
"indication": {
"diseaseSymptomProcedure": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "387517004",
"display": "Pain"
}
]
}
},
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/recommendedDosage",
"valueDosage": {
"sequence": 1,
"text": "Take 2 tablets every 6 hours for 3 days",
"patientInstruction": "Take 2 tablets every 6 hours with water, do not exceed 8 tablets in 24 hours",
"timing": {
"repeat": {
"frequency": 4,
"period": 1,
"periodUnit": "d",
"duration": 3,
"durationUnit": "d"
}
},
"route": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "26643006",
"display": "Oral"
}
]
},
"doseAndRate": [
{
"doseQuantity": {
"value": 2,
"unit": "tablet",
"system": "http://snomed.info/sct",
"code": "428673006"
}
}
],
"maxDosePerPeriod": {
"numerator": {
"value": 8,
"unit": "tablet",
"system": "http://snomed.info/sct",
"code": "428673006"
},
"denominator": {
"value": 1,
"unit": "day",
"system": "http://unitsofmeasure.org",
"code": "d"
}
}
}
}
]
}