Inera Core Implementation Guide
0.2.0 - ci-build
Sweden
Inera Core Implementation Guide - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft as of 2025-12-09 |
<ConceptMap xmlns="http://hl7.org/fhir">
<id value="docbook-to-narrative"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: ConceptMap docbook-to-narrative</b></p><a name="docbook-to-narrative"> </a><a name="hcdocbook-to-narrative"> </a><p>Mapping from https://inera.se/fhir/core/ValueSet/docbook-elements to http://hl7.org/fhir/ValueSet/narrative-xhtml-tags</p><br/><p><b>Group 1 </b>Mapping from <code>https://inera.se/fhir/core/CodeSystem/docbook-elements</code> to <code>http://hl7.org/fhir/narrative-xhtml</code></p><table class="grid"><tr><td><b>Source Code</b></td><td><b>Relationship</b></td><td><b>Target Code</b></td><td><b>Comment</b></td></tr><tr><td>article (article (document root))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>div (<div xmlns='http://www.w3.org/1999/xhtml'>)</td><td>Root <article> becomes the required <div> wrapper for FHIR Narrative. All Narrative content must be inside this div.</td></tr><tr><td>section (section (document section))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>div-section (<div class='section'> or <div id='section-id'>)</td><td>Each <section> becomes a <div> with optional class='section' or id attribute for internal linking. Alternative: use Composition.section instead for structured sections.</td></tr><tr><td>info (info (metadata container))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>omit ((omit - metadata goes in resource elements))</td><td>Metadata from <info> (title, author, date) maps to Composition/DocumentReference resource elements, not Narrative.div</td></tr><tr><td>title (title (section or document title))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>heading (<h1>, <h2>, <h3> etc.)</td><td>In info/article: <h1>. In section: <h2> or deeper based on nesting. Consider using Composition.title instead of Narrative heading.</td></tr><tr><td>para (para (paragraph))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>p (<p>)</td><td>Direct mapping: <para> → <p></td></tr><tr><td>emphasis (emphasis (inline emphasis with role attribute))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>span-varied (<span>, <b>, <i>, <u>, <em>, <strong> based on @role)</td><td>Map based on @role attribute - see role-specific mappings below</td></tr><tr><td>emphasis-bold (emphasis[@role='bold'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>strong (<strong> or <b>)</td><td><emphasis role='bold'>text</emphasis> → <strong>text</strong> (semantic) or <b>text</b> (visual)</td></tr><tr><td>emphasis-italics (emphasis[@role='italics'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>em (<em> or <i>)</td><td><emphasis role='italics'>text</emphasis> → <em>text</em> (semantic) or <i>text</i> (visual)</td></tr><tr><td>emphasis-underline (emphasis[@role='underline'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>u (<u> or <span style='text-decoration:underline'>)</td><td><emphasis role='underline'>text</emphasis> → <u>text</u></td></tr><tr><td>emphasis-collapsible (emphasis[@role='collapsible'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>details (<div class='collapsible'> (non-standard, requires JS))</td><td>FHIR Narrative doesn't support <details>. Use <div class='collapsible'> with custom CSS/JS, or expand all content in static view. Alternative: use separate Composition.section with emptyReason.</td></tr><tr><td>emphasis-bgcolor (emphasis[@role='bgcolor'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>span-highlight (<span class='highlight'> or <span style='background-color:#ffff00'>)</td><td>Use <span> with class or inline style for background color highlighting</td></tr><tr><td>emphasis-information (emphasis[@role='information'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>div-info-box (<div class='info-box'> (gray box in 1177))</td><td>Gray information box from 1177. Map to <div class='info-box'> with CSS for gray background. Content inside includes heading and list.</td></tr><tr><td>emphasis-observe (emphasis[@role='observe'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>div-warning-box (<div class='warning-box'> (yellow box in 1177))</td><td>Yellow warning/observe box from 1177. Map to <div class='warning-box'> with CSS for yellow background. Content inside includes heading and list.</td></tr><tr><td>emphasis-frame (emphasis[@role='frame'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>div-framed-box (<div class='framed-box'> (white bordered box in 1177))</td><td>White framed/bordered box from 1177. Map to <div class='framed-box'> with CSS for border. Content inside includes heading and paragraph.</td></tr><tr><td>ulink (ulink (external URL link))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>a-external (<a href='url' target='_blank'>)</td><td><ulink url='https://example.com' type='_blank'>text</ulink> → <a href='https://example.com' target='_blank'>text</a></td></tr><tr><td>link (link (internal document link))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>a-internal (<a href='#anchor'>)</td><td><link url='#section-id'>text</link> → <a href='#section-id'>text</a>. Ensure target div has matching id attribute.</td></tr><tr><td>itemizedlist (itemizedlist (bulleted/unordered list))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>ul (<ul> or <ul class='bullet'> or <ul class='hyphen'>)</td><td><itemizedlist> → <ul>. Use @mark attribute to determine list-style-type (bullet vs hyphen) via CSS class.</td></tr><tr><td>itemizedlist-bullet (itemizedlist[@mark='bullet'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>ul-bullet (<ul style='list-style-type:disc'> or <ul class='bullet'>)</td><td>Bullet list with disc markers (default for <ul>)</td></tr><tr><td>itemizedlist-hyphen (itemizedlist[@mark='hyphen'])</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>ul-hyphen (<ul style='list-style-type:"- "'> or <ul class='hyphen'>)</td><td>Hyphen list. Use CSS to change list markers to hyphens.</td></tr><tr><td>listitem (listitem (list item content))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>li (<li>)</td><td><listitem> → <li> (both in itemizedlist/ul and variablelist/dl contexts)</td></tr><tr><td>variablelist (variablelist (definition/variable list))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>dl (<dl> (definition list))</td><td><variablelist> → <dl>. Common in 1177 for key-value pairs (Datum: / Tisdag 10 mars 2022)</td></tr><tr><td>varlistentry (varlistentry (variable list entry))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>dt-dd-pair (<dt> + <dd> pair)</td><td>Each <varlistentry> contains one <term> (→ <dt>) and one <listitem> (→ <dd>)</td></tr><tr><td>term (term (variable list term))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>dt (<dt>)</td><td><term>Datum:</term> → <dt>Datum:</dt></td></tr><tr><td>varlistentry-listitem (listitem (in variablelist context))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>dd (<dd>)</td><td><listitem>Tisdag 10 mars 2022</listitem> → <dd>Tisdag 10 mars 2022</dd> (in variablelist)</td></tr><tr><td>bibliography (bibliography (references section))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>div-references (<div class='references'> or <h2>Referenser</h2> + content)</td><td>Create <div class='references'> section or use <h2>Referenser</h2> followed by list. Alternative: use Composition.section for structured bibliography.</td></tr><tr><td>url-attribute (url attribute (for ulink/link))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>href-attribute (href attribute on <a>)</td><td>@url → @href</td></tr><tr><td>type-attribute (type attribute (for ulink/link))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>target-attribute (target attribute on <a>)</td><td>@type='_blank' → @target='_blank' (opens in new window)</td></tr><tr><td>mark-attribute (mark attribute (for itemizedlist))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>class-or-style (class or style attribute on <ul>)</td><td>@mark='bullet' → class='bullet', @mark='hyphen' → class='hyphen' or inline style for list-style-type</td></tr></table></div>
</text>
<url value="https://inera.se/fhir/core/ConceptMap/docbook-to-narrative"/>
<version value="0.2.0"/>
<name value="ConceptMapDocBookToNarrative"/>
<title value="DocBook to FHIR Narrative XHTML Mapping"/>
<status value="draft"/>
<experimental value="false"/>
<date value="2025-12-09"/>
<publisher value="Inera AB"/>
<contact>
<name value="Inera AB"/>
<telecom>
<system value="url"/>
<value value="https://www.inera.se"/>
</telecom>
<telecom>
<system value="email"/>
<value value="info@inera.se"/>
</telecom>
</contact>
<contact>
<name value="Inera AB"/>
<telecom>
<system value="url"/>
<value value="https://www.inera.se"/>
</telecom>
<telecom>
<system value="email"/>
<value value="info@inera.se"/>
</telecom>
</contact>
<description
value="Mapping between DocBook elements supported by 1177 Inkorg and FHIR Narrative.div XHTML.
DocBook is the required format for 1177 Inkorg messages (AddMessage.Message.Text), but FHIR uses
Narrative.div with a restricted XHTML subset (FHIR Narrative data type).
**Source**: DocBook subset supported by 1177 Inkorg
**Target**: FHIR Narrative XHTML (limited XHTML 1.0 Strict subset)
**FHIR Narrative Constraints**:
- Only specific XHTML tags allowed: div, span, p, h1-h6, a, ul, ol, li, dl, dt, dd, b, i, u, em, strong, table, etc.
- All content must be in a single <div xmlns='http://www.w3.org/1999/xhtml'> root
- No DocBook-specific elements (article, section, emphasis[@role]) in output
- Custom styling via @class or @style attributes where needed
**Reference**:
- https://inera.atlassian.net/wiki/spaces/OIIK/pages/3590029598/Docbook-formatering+av+meddelande
- https://inera.atlassian.net/wiki/spaces/OIIK/pages/3590619160/DocBook+exempel
- http://hl7.org/fhir/R4/narrative.html#Narrative"/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="SE"/>
<display value="Sweden"/>
</coding>
</jurisdiction>
<purpose
value="Enable transformation between 1177 Inkorg DocBook format and FHIR Narrative.div for patient communications in DocumentReference and Composition resources"/>
<sourceUri value="https://inera.se/fhir/core/ValueSet/docbook-elements"/>
<targetUri value="http://hl7.org/fhir/ValueSet/narrative-xhtml-tags"/>
<group>
<source value="https://inera.se/fhir/core/CodeSystem/docbook-elements"/>
<target value="http://hl7.org/fhir/narrative-xhtml"/>
<element>
<code value="article"/>
<display value="article (document root)"/>
<target>
<code value="div"/>
<display value="<div xmlns='http://www.w3.org/1999/xhtml'>"/>
<equivalence value="equivalent"/>
<comment
value="Root <article> becomes the required <div> wrapper for FHIR Narrative. All Narrative content must be inside this div."/>
</target>
</element>
<element>
<code value="section"/>
<display value="section (document section)"/>
<target>
<code value="div-section"/>
<display
value="<div class='section'> or <div id='section-id'>"/>
<equivalence value="equivalent"/>
<comment
value="Each <section> becomes a <div> with optional class='section' or id attribute for internal linking. Alternative: use Composition.section instead for structured sections."/>
</target>
</element>
<element>
<code value="info"/>
<display value="info (metadata container)"/>
<target>
<code value="omit"/>
<display value="(omit - metadata goes in resource elements)"/>
<equivalence value="relatedto"/>
<comment
value="Metadata from <info> (title, author, date) maps to Composition/DocumentReference resource elements, not Narrative.div"/>
</target>
</element>
<element>
<code value="title"/>
<display value="title (section or document title)"/>
<target>
<code value="heading"/>
<display value="<h1>, <h2>, <h3> etc."/>
<equivalence value="equivalent"/>
<comment
value="In info/article: <h1>. In section: <h2> or deeper based on nesting. Consider using Composition.title instead of Narrative heading."/>
</target>
</element>
<element>
<code value="para"/>
<display value="para (paragraph)"/>
<target>
<code value="p"/>
<display value="<p>"/>
<equivalence value="equivalent"/>
<comment value="Direct mapping: <para> → <p>"/>
</target>
</element>
<element>
<code value="emphasis"/>
<display value="emphasis (inline emphasis with role attribute)"/>
<target>
<code value="span-varied"/>
<display
value="<span>, <b>, <i>, <u>, <em>, <strong> based on @role"/>
<equivalence value="relatedto"/>
<comment
value="Map based on @role attribute - see role-specific mappings below"/>
</target>
</element>
<element>
<code value="emphasis-bold"/>
<display value="emphasis[@role='bold']"/>
<target>
<code value="strong"/>
<display value="<strong> or <b>"/>
<equivalence value="equivalent"/>
<comment
value="<emphasis role='bold'>text</emphasis> → <strong>text</strong> (semantic) or <b>text</b> (visual)"/>
</target>
</element>
<element>
<code value="emphasis-italics"/>
<display value="emphasis[@role='italics']"/>
<target>
<code value="em"/>
<display value="<em> or <i>"/>
<equivalence value="equivalent"/>
<comment
value="<emphasis role='italics'>text</emphasis> → <em>text</em> (semantic) or <i>text</i> (visual)"/>
</target>
</element>
<element>
<code value="emphasis-underline"/>
<display value="emphasis[@role='underline']"/>
<target>
<code value="u"/>
<display
value="<u> or <span style='text-decoration:underline'>"/>
<equivalence value="equivalent"/>
<comment
value="<emphasis role='underline'>text</emphasis> → <u>text</u>"/>
</target>
</element>
<element>
<code value="emphasis-collapsible"/>
<display value="emphasis[@role='collapsible']"/>
<target>
<code value="details"/>
<display
value="<div class='collapsible'> (non-standard, requires JS)"/>
<equivalence value="relatedto"/>
<comment
value="FHIR Narrative doesn't support <details>. Use <div class='collapsible'> with custom CSS/JS, or expand all content in static view. Alternative: use separate Composition.section with emptyReason."/>
</target>
</element>
<element>
<code value="emphasis-bgcolor"/>
<display value="emphasis[@role='bgcolor']"/>
<target>
<code value="span-highlight"/>
<display
value="<span class='highlight'> or <span style='background-color:#ffff00'>"/>
<equivalence value="relatedto"/>
<comment
value="Use <span> with class or inline style for background color highlighting"/>
</target>
</element>
<element>
<code value="emphasis-information"/>
<display value="emphasis[@role='information']"/>
<target>
<code value="div-info-box"/>
<display value="<div class='info-box'> (gray box in 1177)"/>
<equivalence value="relatedto"/>
<comment
value="Gray information box from 1177. Map to <div class='info-box'> with CSS for gray background. Content inside includes heading and list."/>
</target>
</element>
<element>
<code value="emphasis-observe"/>
<display value="emphasis[@role='observe']"/>
<target>
<code value="div-warning-box"/>
<display
value="<div class='warning-box'> (yellow box in 1177)"/>
<equivalence value="relatedto"/>
<comment
value="Yellow warning/observe box from 1177. Map to <div class='warning-box'> with CSS for yellow background. Content inside includes heading and list."/>
</target>
</element>
<element>
<code value="emphasis-frame"/>
<display value="emphasis[@role='frame']"/>
<target>
<code value="div-framed-box"/>
<display
value="<div class='framed-box'> (white bordered box in 1177)"/>
<equivalence value="relatedto"/>
<comment
value="White framed/bordered box from 1177. Map to <div class='framed-box'> with CSS for border. Content inside includes heading and paragraph."/>
</target>
</element>
<element>
<code value="ulink"/>
<display value="ulink (external URL link)"/>
<target>
<code value="a-external"/>
<display value="<a href='url' target='_blank'>"/>
<equivalence value="equivalent"/>
<comment
value="<ulink url='https://example.com' type='_blank'>text</ulink> → <a href='https://example.com' target='_blank'>text</a>"/>
</target>
</element>
<element>
<code value="link"/>
<display value="link (internal document link)"/>
<target>
<code value="a-internal"/>
<display value="<a href='#anchor'>"/>
<equivalence value="equivalent"/>
<comment
value="<link url='#section-id'>text</link> → <a href='#section-id'>text</a>. Ensure target div has matching id attribute."/>
</target>
</element>
<element>
<code value="itemizedlist"/>
<display value="itemizedlist (bulleted/unordered list)"/>
<target>
<code value="ul"/>
<display
value="<ul> or <ul class='bullet'> or <ul class='hyphen'>"/>
<equivalence value="equivalent"/>
<comment
value="<itemizedlist> → <ul>. Use @mark attribute to determine list-style-type (bullet vs hyphen) via CSS class."/>
</target>
</element>
<element>
<code value="itemizedlist-bullet"/>
<display value="itemizedlist[@mark='bullet']"/>
<target>
<code value="ul-bullet"/>
<display
value="<ul style='list-style-type:disc'> or <ul class='bullet'>"/>
<equivalence value="equivalent"/>
<comment
value="Bullet list with disc markers (default for <ul>)"/>
</target>
</element>
<element>
<code value="itemizedlist-hyphen"/>
<display value="itemizedlist[@mark='hyphen']"/>
<target>
<code value="ul-hyphen"/>
<display
value="<ul style='list-style-type:"- "'> or <ul class='hyphen'>"/>
<equivalence value="equivalent"/>
<comment
value="Hyphen list. Use CSS to change list markers to hyphens."/>
</target>
</element>
<element>
<code value="listitem"/>
<display value="listitem (list item content)"/>
<target>
<code value="li"/>
<display value="<li>"/>
<equivalence value="equivalent"/>
<comment
value="<listitem> → <li> (both in itemizedlist/ul and variablelist/dl contexts)"/>
</target>
</element>
<element>
<code value="variablelist"/>
<display value="variablelist (definition/variable list)"/>
<target>
<code value="dl"/>
<display value="<dl> (definition list)"/>
<equivalence value="equivalent"/>
<comment
value="<variablelist> → <dl>. Common in 1177 for key-value pairs (Datum: / Tisdag 10 mars 2022)"/>
</target>
</element>
<element>
<code value="varlistentry"/>
<display value="varlistentry (variable list entry)"/>
<target>
<code value="dt-dd-pair"/>
<display value="<dt> + <dd> pair"/>
<equivalence value="equivalent"/>
<comment
value="Each <varlistentry> contains one <term> (→ <dt>) and one <listitem> (→ <dd>)"/>
</target>
</element>
<element>
<code value="term"/>
<display value="term (variable list term)"/>
<target>
<code value="dt"/>
<display value="<dt>"/>
<equivalence value="equivalent"/>
<comment
value="<term>Datum:</term> → <dt>Datum:</dt>"/>
</target>
</element>
<element>
<code value="varlistentry-listitem"/>
<display value="listitem (in variablelist context)"/>
<target>
<code value="dd"/>
<display value="<dd>"/>
<equivalence value="equivalent"/>
<comment
value="<listitem>Tisdag 10 mars 2022</listitem> → <dd>Tisdag 10 mars 2022</dd> (in variablelist)"/>
</target>
</element>
<element>
<code value="bibliography"/>
<display value="bibliography (references section)"/>
<target>
<code value="div-references"/>
<display
value="<div class='references'> or <h2>Referenser</h2> + content"/>
<equivalence value="relatedto"/>
<comment
value="Create <div class='references'> section or use <h2>Referenser</h2> followed by list. Alternative: use Composition.section for structured bibliography."/>
</target>
</element>
<element>
<code value="url-attribute"/>
<display value="url attribute (for ulink/link)"/>
<target>
<code value="href-attribute"/>
<display value="href attribute on <a>"/>
<equivalence value="equivalent"/>
<comment value="@url → @href"/>
</target>
</element>
<element>
<code value="type-attribute"/>
<display value="type attribute (for ulink/link)"/>
<target>
<code value="target-attribute"/>
<display value="target attribute on <a>"/>
<equivalence value="equivalent"/>
<comment
value="@type='_blank' → @target='_blank' (opens in new window)"/>
</target>
</element>
<element>
<code value="mark-attribute"/>
<display value="mark attribute (for itemizedlist)"/>
<target>
<code value="class-or-style"/>
<display value="class or style attribute on <ul>"/>
<equivalence value="relatedto"/>
<comment
value="@mark='bullet' → class='bullet', @mark='hyphen' → class='hyphen' or inline style for list-style-type"/>
</target>
</element>
</group>
</ConceptMap>