Global Core Electronic Medicinal Product Information (ePI), published by HL7 International / Biomedical Research and Regulation. 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
Type 3 Clinical Information
📋
Pre-requisites: Type 3 builds directly on top of Type 2. Before starting here, ensure you have a validated Type 1 and Type 2 ePI for the product.
What is ePI Type 3?
An ePI Type 3 unlocks structured, machine readable clinical information. It takes the narrative clinical sections already present in Type 1 — indications, contraindications, interactions, undesirable effects, warnings, population demographics — and expresses them as computable, structured FHIR resources. Electronic Medical Record (EMR) systems, pharmacovigilance tools, and patient-facing apps can then query and act on this data directly, without parsing free text.
You will add these FHIR resources (on top of Types 1 & 2)
All Type 1 & 2 resources
🩺 ClinicalUseDefinition (×n)
💊 MedicationKnowledge (optional)
How the Type 3 resources connect
MedicinalProductDefinition
subject of
ClinicalUseDefinition (Indications)
subject of
ClinicalUseDefinition (Contraindications)
subject of
ClinicalUseDefinition (Warnings)
subject of
ClinicalUseDefinition (Undesirable Effects)
subject of
ClinicalUseDefinition (Interactions)
subject of
MedicationKnowledge
⚡ The Granularity Rule applies here too
Just as each indication in the narrative gets its own <section> in Type 1, each clinical concept — every indication, every contraindication, every warning — gets its own ClinicalUseDefinition resource in Type 3. One concept, one resource.
Step-by-Step Workflow
1
Identify clinical concepts in the narrative
Work through the narrative sections of the label and identify every discrete clinical concept that can be expressed as structured data. For each concept, note what type it is.
| Clinical concept type |
Typical label section |
Example |
| Indication | Section 4.1 (SmPC) / Section 1 (PIL) | Treatment of mild to moderate pain in adults |
| Contraindication | Section 4.3 (SmPC) | Known hypersensitivity to paracetamol |
| Interaction | Section 4.5 (SmPC) | Concurrent use of warfarin (increased anticoagulant effect) |
| Warning | Section 4.4 (SmPC) | Use with caution in patients with renal impairment |
| Undesirable effect | Section 4.8 (SmPC) | Nausea (frequency: common) |
💡
Tip: Build a simple spreadsheet listing each concept, its type, and the label section it comes from. This becomes your authoring checklist for Step 3.
2
Code concepts with standard terminologies
Structured clinical data must use standardised codes so that different systems can understand and compare concepts without ambiguity. Map each concept from your spreadsheet to a standard code.
| What you are coding |
Recommended terminology |
Example code |
| Disease / indication | SNOMED CT | 57676002 — Pain in joint |
| Disease / condition (alternative) | ICD-10 / ICD-11 | R50.9 — Fever, unspecified |
| Substance / allergen | SNOMED CT | 387517004 — Paracetamol |
| Adverse event / effect | MedDRA | PT Nausea 10028813 |
| Route of administration | EDQM standard terms | Oral use 20053000 |
💡
Tip: Check whether your national regulator requires a specific terminology system. Some jurisdictions mandate SNOMED CT; others accept ICD or local code lists. Your authoring tool may include a built-in terminology browser.
3
Create a ClinicalUseDefinition for each concept
For every clinical concept in your spreadsheet, create one ClinicalUseDefinition resource. Link each one back to the MedicinalProductDefinition via the subject field.
Example — Indications
⚠ Narrative only (Type 1)
4.1 Indications
Indicated for: mild pain, fever, musculoskeletal pain — all described in one paragraph of free text.
✓ Structured (Type 3)
ClinicalUseDefinition #1
type: indication | code: SNOMED 57676002 (Mild pain)
ClinicalUseDefinition #2
type: indication | code: SNOMED 386661006 (Fever)
ClinicalUseDefinition #3
type: indication | code: SNOMED 182290002 (Musculoskeletal pain)
Example — Contraindications
⚠ Narrative only (Type 1)
4.3 Contraindications
Do not use in: hypersensitivity to active substance, severe hepatic impairment, active peptic ulcer — listed as bullets.
✓ Structured (Type 3)
ClinicalUseDefinition #4
type: contraindication | code: SNOMED 416098002 (Drug allergy)
ClinicalUseDefinition #5
type: contraindication | code: SNOMED 197315008 (Severe hepatic impairment)
ClinicalUseDefinition #6
type: contraindication | code: SNOMED 13200003 (Peptic ulcer)
Example — Warnings & Special Populations
⚠ Narrative only (Type 1)
4.4 Special Warnings
Use with caution in: elderly patients, renal impairment, cardiovascular disease — described in a single section of prose.
✓ Structured (Type 3)
ClinicalUseDefinition #7
type: warning | category: Elderly
ClinicalUseDefinition #8
type: warning | category: Renal impairment
ClinicalUseDefinition #9
type: warning | category: Cardiovascular
4
Add MedicationKnowledge for dosage regimens (optional)
The MedicationKnowledge resource provides computable dosing rules and therapeutic classification. It can facilitate healthcare systems' ability to interpret authorized dosing information for specific patient populations.
| What it captures |
Example values |
| ATC classification | N02BE01 — Paracetamol |
| Dosage by population | Adults: 500–1000 mg every 4–6 hours; max 4 g/day |
| Paediatric dosing | 10–15 mg/kg per dose; max 4 doses per day |
| Renal / hepatic adjustment | Reduce dose frequency in severe renal impairment |
💡
Tip: MedicationKnowledge is valuable but complex to author. Consider adding it in a later iteration once the ClinicalUseDefinitions are validated and accepted. Your authoring tool should offer templates for common dosing patterns.
5
Align narrative sections with structured data, then validate
The narrative text in the Composition (Type 1) and the structured ClinicalUseDefinition resources must be consistent. A contraindication in Section 4.3 of the narrative must have a matching ClinicalUseDefinition of type contraindication in the Bundle.
🔗
Cross-reference check: For each ClinicalUseDefinition, confirm the corresponding narrative section in the Composition exists and uses consistent language. Discrepancies between structured and narrative data are a common source of validation errors.
✅
Validate: Run the completed Bundle against the Type 3 FHIR Profile. Fix any errors before submission. Full XML/JSON examples are in the Artifacts section. An interactive showcase of a Type 3 ePI is also available in the Style Sheets section.
5
Manage lifecycle and version control
Once your ePI is authorized and published, any future changes must follow a structured versioning process. A new version of the label requires careful updates to the Bundle, Composition, and List resources to maintain historical traceability.
🔄 See Version Control Guide
Before creating a v2.0 or subsequent version of this ePI, read the comprehensive Version Control guide. It explains how to deprecate old versions, link new versions to the historical record, and increment your identifiers correctly.
What's next?