German (DEU) electronic Product Information Leaflet (ePIL) Implementation Guide
0.7.0 - ci-build

German (DEU) electronic Product Information Leaflet (ePIL) Implementation Guide - Local Development build (v0.7.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Chapter Change Marking

Chapter Change Marking

Overview

The diGItal ePI Implementation Guide supports a chapter-level change tracking mechanism to identify which sections of a Product Information Leaflet have been modified between versions. This feature enables consumers and healthcare providers to quickly identify which chapters contain updated information.

Important: The change marking indicates that a chapter has changed, not what specifically changed within the chapter. It serves as a high-level indicator to draw attention to updated sections.


Technical Implementation

Components

The change marking system consists of two interconnected components:

1. relatesTo (Composition-level)

The Composition.relatesTo element provides the publication date of the previous version:

  • Type: Must be replaces to indicate this document replaces a previous version
  • Publication Date: The publication date of the previous version in YYYY-MM format (e.g., 2025-12)
  • Cardinality: Optional (0..*), but becomes required when any section is marked as changed
  • Purpose: Provides temporal context about when the previous version was published

Note: Only type and publicationDate are used. No resource reference or other fields are included.

2. DEU-ePIL-Section-Change Extension (Section-level)

The extension http://fhir.pharmaprotect.de/digital/epil-fhir-ig/StructureDefinition/DEU-ePIL-Section-Change can be applied to any section at any level:

  • Type: Boolean value
  • Value: true = section has changed; false or absent = section unchanged
  • Applicable to: Level 1 sections (chapters), Level 2 subsections, Level 3 subsections
  • Cardinality: Optional (0..1) per section

Constraint Rules

Constraint: Extension and relatesTo Require Each Other

The section change extension and relatesTo[replaces] must always appear together — you cannot use one without the other:

  • If any section is marked as changed → relatesTo with type = replaces must be present
  • If relatesTo with type = replaces is present → at least one section must be marked as changed

This ensures that every change marking includes the previous version's publication date, and that the previous version date is only present when actual changes exist.


Usage Examples

Example 1: Single Chapter Modified

A Product Information Leaflet where only Chapter 2 has been updated. The previous version was published in December 2024:

<Composition xmlns="http://hl7.org/fhir">
    <id value="epil-tripapolon-v2"/>
    <meta>
        <profile value="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/StructureDefinition/DEU-ePIL-Extended-QRD-10-4-template-de-eCAPI"/>
    </meta>

    <!-- Version tracking -->
    <version value="2.0.0"/>
    <identifier>
        <system value="urn:uuid"/>
        <value value="8cd3d3f8-1234-5678-90ab-cdef12345678"/>
    </identifier>

    <!-- Publication date of the previous version (required when changes are marked) -->
    <relatesTo>
        <type value="replaces"/>
        <publicationDate value="2024-12"/>
    </relatesTo>

    <!-- Current version publication date (YYYY-MM format) -->
    <date value="2025-01"/>

    <!-- ... other Composition elements ... -->

    <!-- Level 1: PACKUNGSBEILAGE container -->
    <section>
        <code>
            <coding>
                <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                <code value="200000029894"/>
                <display value="PACKUNGSBEILAGE"/>
            </coding>
        </code>

        <!-- Level 2: Chapter 1 - Not changed -->
        <section>
            <title value="Was ist Tripapolon und wofür wird es angewendet?"/>
            <code>
                <coding>
                    <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                    <code value="200000029895"/>
                </coding>
            </code>
            <!-- No extension = unchanged -->
        </section>

        <!-- Level 2: Chapter 2 - CHANGED -->
        <section>
            <!-- Extension indicating change -->
            <extension url="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/StructureDefinition/DEU-ePIL-Section-Change">
                <valueBoolean value="true"/>
            </extension>

            <title value="Was sollten Sie vor der Einnahme von Tripapolon beachten?"/>
            <code>
                <coding>
                    <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                    <code value="200000029896"/>
                </coding>
            </code>
            <!-- ... chapter content ... -->
        </section>

        <!-- Level 2: Chapter 3 - Not changed -->
        <section>
            <title value="Wie ist Tripapolon einzunehmen?"/>
            <code>
                <coding>
                    <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                    <code value="200000029905"/>
                </coding>
            </code>
            <!-- No extension = unchanged -->
        </section>

        <!-- ... remaining chapters ... -->
    </section>
</Composition>

Example 2: Multiple Chapters and Subsections Changed

A document where both entire chapters and specific subsections have been modified:

<Composition xmlns="http://hl7.org/fhir">
    <id value="epil-tripapolon-v3"/>
    <version value="3.0.0"/>

    <!-- Previous version was published in January 2025 -->
    <relatesTo>
        <type value="replaces"/>
        <publicationDate value="2025-01"/>
    </relatesTo>

    <!-- Current version published in March 2025 -->
    <date value="2025-03"/>

    <!-- ... other metadata ... -->

    <section>
        <code>
            <coding>
                <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                <code value="200000029894"/>
            </coding>
        </code>

        <!-- Chapter 4 - Entire chapter changed -->
        <section>
            <extension url="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/StructureDefinition/DEU-ePIL-Section-Change">
                <valueBoolean value="true"/>
            </extension>

            <title value="Welche Nebenwirkungen sind möglich?"/>
            <code>
                <coding>
                    <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                    <code value="200000029910"/>
                </coding>
            </code>
            <!-- ... chapter content ... -->
        </section>

        <!-- Chapter 6 - Parent unchanged, but subsection modified -->
        <section>
            <!-- No extension at chapter level -->
            <title value="Inhalt der Packung und weitere Informationen"/>
            <code>
                <coding>
                    <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                    <code value="200000029914"/>
                </coding>
            </code>

            <!-- Subsection 6.1 - Not changed -->
            <section>
                <title value="Was Tripapolon enthält"/>
                <code>
                    <coding>
                        <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                        <code value="200000029915"/>
                    </coding>
                </code>
            </section>

            <!-- Subsection 6.2 - CHANGED -->
            <section>
                <extension url="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/StructureDefinition/DEU-ePIL-Section-Change">
                    <valueBoolean value="true"/>
                </extension>

                <title value="Wie Tripapolon aussieht und Inhalt der Packung"/>
                <code>
                    <coding>
                        <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                        <code value="200000029916"/>
                    </coding>
                </code>
                <!-- ... subsection content ... -->
            </section>
        </section>
    </section>
</Composition>

Example 3: diGItal Custom Chapter Changed

Changes in diGItal-specific chapters (e.g., Usage Instructions, General Notification):

<Composition xmlns="http://hl7.org/fhir">
    <id value="epil-product-x-v2"/>
    <version value="2.1.0"/>

    <!-- Previous version published in November 2024 -->
    <relatesTo>
        <type value="replaces"/>
        <publicationDate value="2024-11"/>
    </relatesTo>

    <date value="2025-02"/>

    <!-- ... other metadata ... -->

    <section>
        <code>
            <coding>
                <system value="http://ema.europa.eu/fhir/CodeSystem/200000029659"/>
                <code value="200000029894"/>
            </coding>
        </code>

        <!-- ... EMA Chapters 1-6 (unchanged) ... -->

        <!-- diGItal General Notification - CHANGED -->
        <section>
            <extension url="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/StructureDefinition/DEU-ePIL-Section-Change">
                <valueBoolean value="true"/>
            </extension>

            <title value="Allgemeiner Hinweis"/>
            <code>
                <coding>
                    <system value="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/CodeSystem/DEU-ePIL-Extended-Section-CodeSystem"/>
                    <code value="general-notification"/>
                    <display value="Allgemeiner Hinweis"/>
                </coding>
            </code>
            <!-- ... content ... -->
        </section>

        <!-- diGItal Usage Instructions - Not changed -->
        <section>
            <title value="Gebrauchsanweisungen"/>
            <code>
                <coding>
                    <system value="http://fhir.pharmaprotect.de/digital/epil-fhir-ig/CodeSystem/DEU-ePIL-Extended-Section-CodeSystem"/>
                    <code value="usage-instructions"/>
                </coding>
            </code>
            <!-- No extension = unchanged -->
        </section>
    </section>
</Composition>

Implementation Considerations

Change Granularity

Chapter-level Changes: Apply the extension to the entire chapter when:

  • The entire chapter content has been modified
  • Multiple subsections within the chapter have changed
  • You want to draw attention to the chapter as a whole

Subsection-level Changes: Apply the extension only to specific subsections when:

  • Only one or two subsections have been updated
  • The parent chapter structure remains unchanged
  • Precise change indication is desired

Versioning Strategy

Semantic Versioning: Use the Composition.version element:

  • MAJOR version: Significant content changes, new chapters, structural changes
  • MINOR version: Updates to existing chapters, new subsections
  • PATCH version: Minor corrections, formatting changes

Identifier Management: Each version must have a unique Composition.identifier (UUID recommended).

Publication Date Format

YYYY-MM Format: Both Composition.date and relatesTo.publicationDate use the gYearMonth datatype:

  • Format: YYYY-MM (e.g., 2025-12 for December 2025)
  • Represents the month of publication
  • Provides sufficient temporal granularity for version tracking

Presentation Guidelines

Visual Indicators

Rendering systems should clearly indicate changed sections:

  • Icons: Use symbols (e.g., 🆕, ⭐, •) next to changed chapter titles
  • Colors: Highlight changed sections with a subtle background color or border
  • Badges: Add "Updated" or "Neu" badges to section headings
  • Sidebar indicators: Use a colored marker in navigation menus

User Interface Features

Change Summary View: Provide a "What's New" page that lists:

  • All changed chapters with direct links
  • Previous version publication date (from relatesTo.publicationDate)
  • Current version date (from Composition.date)

Example Display:

What's New in Version 2.0.0
Published: January 2025
Replaces: December 2024 version

Updated Chapters:
• Chapter 2: Was sollten Sie vor der Einnahme beachten?
• Chapter 4: Welche Nebenwirkungen sind möglich?

Filter Options: Allow users to:

  • View only changed sections
  • Jump between changed sections
  • See the version history timeline

Validation

FHIR Invariant Enforcement

The bidirectional constraint is automatically validated by the FHIR invariant deu-epil-section-change-relates-to defined in the DEU_ePIL_Composition profile. This invariant enforces:

  1. Extension presence: At least one section has sectionChange = true when relatesTo with type=replaces exists
  2. relatesTo presence: At least one relatesTo with type=replaces exists when any section has sectionChange = true

Severity: Error (validation will fail if constraint is violated)

Additional Automated Checks

Implementations should also validate:

  1. Type correctness: relatesTo entries for change tracking use type = replaces
  2. Publication date format: Both Composition.date and relatesTo.publicationDate follow YYYY-MM format (gYearMonth)
  3. Publication date logic: publicationDate should be before the current Composition.date

Quality Checks

Before publishing a new version:

  • Review all sections marked as changed to ensure accuracy
  • Verify the publication date of the previous version is correct
  • Confirm version number increments appropriately
  • Check that unchanged sections do NOT have the extension

Core Profiles

Extensions

CodeSystems


Frequently Asked Questions

Q: Does the change marking indicate what specifically changed in the chapter? A: No. The extension only indicates that the chapter has changed, not what changed. For detailed change information, users must compare the content with the previous version.

Q: Why only the publication date and not a full reference to the previous version? A: The publication date provides sufficient temporal context for users to understand when the previous version was published. This lightweight approach avoids the complexity of maintaining full resource references while still providing meaningful version context.

Q: What if the previous version doesn't have a specific publication month? A: Use the best available information. If only the year is known, use January of that year (e.g., 2024-01). If a more precise date is known, use that month.

Q: Can I include multiple relatesTo entries? A: Yes, you can include multiple entries if the document replaces multiple previous versions (e.g., consolidating different regional versions), but at least one must be present when changes are marked.

Q: Should subsections inherit the change flag from their parent section? A: No. Change flags are explicit, not inherited. Mark subsections individually if granular tracking is desired.

Q: Can I mark a section as changed without providing a publication date? A: No. The constraint rules require that any section marked as changed must be accompanied by a relatesTo with type=replaces and a publicationDate.

Q: Why use YYYY-MM format instead of full dateTime? A: Month-level precision is sufficient for tracking document versions in the regulatory context, and it simplifies data entry and display. It aligns with common regulatory publication practices.


Best Practices Summary

DO:

  • Always include relatesTo with type=replaces and publicationDate when marking sections as changed
  • Use YYYY-MM format for both Composition.date and relatesTo.publicationDate
  • Use semantic versioning for clear version tracking
  • Mark changes at the appropriate granularity level (chapter vs. subsection)
  • Validate the bidirectional constraint before publishing
  • Display the previous version publication date to users for context

DON'T:

  • Mark sections as changed without providing the previous version publication date
  • Include relatesTo without marking any sections as changed
  • Use incorrect date formats (must be YYYY-MM)
  • Forget to increment the version number when making changes
  • Include resource references or other fields in relatesTo beyond type and publicationDate
  • Assume users will know what specifically changed within marked sections

Additional Resources