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"
}
}
}
}
]
}