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