IPS Technical Background 1
Contents
Technical Background
What is a CDA
CDA R2 is "… a document markup standard that specifies the structure and semantics of clinical documents for the purpose of exchange” [CDA R2, Section 1.1]. Clinical documents, according to CDA, have the following characteristics:
- Persistence
- Stewardship
- Potential for authentication
- Context
- Wholeness
- Human readability
CDA defines a header for classification and management and a document body that carries the clinical record. While the header metadata are prescriptive and designed for consistency across all instances, the body is highly generic, leaving the designation of semantic requirements to implementation.
Templated CDA
CDA R2 can be constrained by mechanisms defined in the “Refinement and Localization” section of the HL7 Version 3 Interoperability Standards. The mechanism most commonly used to constrain CDA is referred to as “templated CDA”. This specification created a set of artifacts containing modular CDA templates (and associated value sets) for the purpose of the International Patient Summary, and the templates can be reused across any number of CDA document types.
There are different kinds of templates that might be created. Among them, the most common ones are:
- CDA Document Level Templates constrain fields in the Clinical Document Architecture (CDA) header, and define containment relationships to CDA sections.
For example, a History-and-Physical document-level template might require that the patient’s name be present, and that the document contain a Physical Exam section. - CDA Header Level Templates constrain fields for parts of the CDA header, like the patient (record target), the author, participations or the service event.
- CDA Section Level Templates constrain fields in the CDA section, and define containment relationships to CDA entries.
For example, a Physical-exam section-level template might require that the section/code be fixed to a particular LOINC code, and that the section contain a Systolic Blood Pressure observation. - CDA Entry Level Templates constrain the CDA clinical statement model in accordance with real world observations and acts.
For example, a Systolic-blood-pressure entry-level template defines how the CDA Observation class is constrained (how to populate observation/code, how to populate observation/value, etc.) to represent the notion of a systolic blood pressure.
Open and Closed Templates
Open templates permit anything to be done in the underlying standard that is not explicitly prohibited. This allows templates to be built up over time that extend and go beyond the original use cases for which they were originally designed.
Closed templates only permit what has been defined in the template, and do not permit anything beyond that. There are good reasons to use closed templates, sometimes having to do with local policy. For example, in communicating information from a healthcare provider to an insurance company, some information may need to be omitted to ensure patient privacy laws are followed. Most templates developed for CDA are of the open sort.
Template versioning
Template versioning is needed to enable template designs to evolve over time.
Template versioning enables template designers to control and shape the conformance statements that make up a template’s design over time tailoring the design to fit the template’s intended purpose.
Each template version is associated with a particular template. The template – as a whole – has a mandatory globally unique, non-semantic, identifier. The identifier serves as the identifier of the original intent of the template and as the identifier of the set of versions that represent the template over time.
Template versions have a mandatory timestamp (date and optional time), called the “effective date”. The date can be seen as the point in time when the template version “came into being”, i.e. was recognized as existent by the governance group. Use of the template prior to this date would be considered an invalid use of the template.
For further information on Templates, Template Versions and related topics refer to the HL7 Templates Standard[1].
Conformance Verbs
The conformance verb keywords SHALL, SHOULD, MAY and SHALL NOT in this document are to be interpreted as described in the HL7 Version 3 Publishing Facilitator's Guide[2].
- SHALL: an absolute requirement
- SHALL NOT: an absolute prohibition against inclusion
- SHOULD: best practice or recommendation. There may be valid reasons to ignore an item, but the full implications must be understood and carefully weighed before choosing a different course
- MAY: truly optional; can be included or omitted as the author decides with no implications
Identifiers for Templates and Value Sets
This specification uses the following OIDs for the artefacts that are registered at the HL7 OID registry.
- The root OID for templates is 2.16.840.1.113883.10.22
- Document Level Templates are sub branch .1, e.g. 2.16.840.1.113883.10.22.1.1 International Patient Summary
- Header Level Templates are summarized under 2.16.840.1.113883.10.22.2, e.g. 2.16.840.1.113883.10.22.2.1 IPS CDA recordTarget
- Section Level Templates are summarized under 2.16.840.1.113883.10.22.3, e.g. 2.16.840.1.113883.10.22.3.1 IPS Medication Summary Section
- Entry Level templates are summarized under 2.16.840.1.113883.10.22.4, e.g. 2.16.840.1.113883.10.22.4.19 IPS Certainty Observation
- “other” assistance templates are summarized under 2.16.840.1.113883.10.22.9, e.g. 2.16.840.1.113883.10.22.9.2 IPS CDA Device
- The root OID for Value Sets is 2.16.840.1.113883.11
The sub branches for templates follow the recommendations of HL7 International and ISO 13582[3]
Terminologies
Some hints
- Focus on Value Sets, as they are the main artefacts used for validation
- General Info about Terminology Binding
Note: most of the description provided in this section is copied and adapted from the §4.2.8 Vocabulary Conformance section of the C-CDA DSTU R2.1 Implementation Guide Volume 1 [4]
The templates in this document use terms from several code systems. These vocabularies are defined in various supporting specifications and may be maintained by other bodies, as is the case for the LOINC® and SNOMED CT® vocabularies. The primary terminologies identified for this specification are listed here.
Note that value set identifiers (e.g., ValueSet 2.16.840.1.113883.1.11.78 Observation Interpretation DYNAMIC) used in the binding definitions of template conformance statements do not appear in the XML instance of a CDA document. The definition of the template must be referenced to determine or validate the vocabulary conformance requirements of the template.
Value set bindings adhere to HL7 Vocabulary Working Group best practices, and include both an indication of stability and of coding strength for the binding. Value set bindings can be STATIC, meaning that they bind to a specified version of a value set, or DYNAMIC, meaning that they bind to the most current version of the value set. If a STATIC binding is specified, a date SHALL be included to indicate the value set version. If a DYNAMIC binding is specified, the value set authority and link to the base definition of the value set SHALL be included, if available, so implementers can access the current version of the value set. When a vocabulary binding binds to a single code, the stability of the binding is implicitly STATIC.
SHALL contain exactly one [1..1] code
.
a) This code SHALL contain exactly one [1..1] @code="11450-4" Problem List
.
b) This code SHALL contain exactly one [1..1] @codeSystem="2.16.840.1.113883.6.1" (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC).
[Figure" 1] Binding to a Single Code
The notation conveys the actual code (11450-4), the code’s displayName (Problem List), the OID of the codeSystem from which the code is drawn (2.16.840.1.113883.6.1), and the codeSystemName (LOINC). In the tabular view used in this guide this information is presented as shown below.
hl7:code | 1 … 1 | M | |||
@code | CONF | 1 … 1 | F | 11450-4 | |
@codeSystem | 1 … 1 | F | 2.16.840.1.113883.6.1 (LOINC) | ||
@displayName | 1 … 1 | F | Problem List |
[Figure" 2] Binding to a Single Code (tabular view)
HL7 Data Types Release 1 requires the codeSystem attribute unless the underlying data type is “Coded Simple” or “CS”, in which case it is prohibited. The displayName and the codeSystemName are optional, but recommended, in all cases.
The above example would be properly expressed as follows.
<code code="11450-4" codeSystem="2.16.840.1.113883.6.1"/>
<!-- or -->
<code code="11450-4" codeSystem="2.16.840.1.113883.6.1"
displayName="Problem List" codeSystemName=”LOINC”/>
[Figure" 3] XML Expression of a Single-Code Binding
A full discussion of the representation of vocabulary is outside the scope of this document; for more information, see the HL7 V3 Normative Edition 201012 sections on Abstract Data Types and XML Data Types R1.
There is a discrepancy between the HL7 R1 Data Types and this guide in the implementation of translation code versus the original code. The R1 data type requires the original code in the root. The convention agreed upon for this implementation guide specifies a code from the required value set be used in the element and other codes not included in the value set are to be represented in a translation for the element. This discrepancy is resolved in HL7 Data Types R2.
In the next example, the conformant code is SNOMED-CT code 206525008.
<code code="206525008" codeSystem="2.16.840.1.113883.6.96"
displayName="neonatal necrotizing enterocolitis" codeSystemName="SNOMED CT">
<translation code="NEC-1" codeSystem="2.16.840.1.113883.19"
displayName="necrotizing enterocolitis"/>
</code>
[Figure" 4] Translation Code Example
Value set tables are present below a template, or are referenced if they occur elsewhere in the specification, when there are value set bindings in the template. The value set table provides the value set identifier, a description, and a link to the source of the value set when possible. Ellipses in the last row indicate the value set members shown are examples and the true source must be accessed to see all members.
If a value set binding has a DYNAMIC stability, implementers creating a CDA document must go to the location in the URL to check for the most current version of the value set expansion.
How to extend Value Sets
- ? Coded with Extensibility / no Extensions ? or other topics ?
- If needed: Example binding
- We must use NI as a nullFlavor instead on UNC (uncoded). Write a note on this.
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedteits
- ↑ HL7 Version 3 Publishing Facilitator's Guide http://www.hl7.org/v3ballot/html/help/pfg/pfg.htm
- ↑ ISO/TS 13582:2013 Health informatics -- Sharing of OID registry information
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedccda21
Cite error: <ref>
tags exist for a group named "Figure"", but no corresponding <references group="Figure""/>
tag was found, or a closing </ref>
is missing