Sharing Valuesets, Codes, and Maps (SVCM)
1.5.2-current - ci-build International flag

Sharing Valuesets, Codes, and Maps (SVCM), published by IHE IT Infrastructure Technical Committee. This guide is not an authorized publication; it is the continuous build for version 1.5.2-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/ITI.SVCM/ and changes regularly. See the Directory of published versions

1:51 Sharing Valuesets, Codes, and Maps Volume 1

The Sharing Valuesets, Codes, and Maps (SVCM) Profile defines a lightweight interface through which healthcare systems may retrieve centrally managed uniform nomenclature and mappings between code systems, using the HL7 Fast Healthcare Interoperability Resources (FHIR) specification.

Terminologies managed in value sets are most useful when they are widely shared and standardized across geography and disciplines to add clarity and specificity.

1:51.1 SVCM Actors, Transactions and Content Modules

This section defines the actors, transactions, and/or content modules in this profile. Further information about actor and transaction definitions can be found in the IHE Technical Frameworks General Introduction Appendix A: Actors and Appendix B: Transactions.

Figure 1:51.1-1 shows the actors directly involved in the SVCM Profile and the relevant transactions between them. Other actors that may be indirectly involved due to their participation in related profiles are not necessarily shown.

Terminology Repository       Terminology Consumer       Query Value Set [ITI-95]Query Code System [ITI-96]Expand Value Set [ITI-97]Lookup Code [ITI-98]Validate Code [ITI-99]Query Concept Map [ITI-100]Translate Code [ITI-101]

Figure 1:51.1-1: Actors and Transactions

Table 1:51.1-1 lists the transactions for each actor directly involved in the SVCM Profile. In order to claim support of this profile, an implementation must perform the required transactions (labeled “R”). Transactions labeled “O” are optional. A complete list of options defined by this profile is shown in Table 1:51.2-1.

Table 1:51.1-1: SVCM Profile - Actors and Transactions

Actors Transactions Initiator or Responder Optionality Section
Terminology Consumer Query Value Set [ITI-95] Initiator O (Note 1) ITI TF-2: 3.95
  Query Code System [ITI-96] Initiator O (Note 1) ITI TF-2: 3.96
  Expand Value Set [ITI-97] Initiator O (Note 1) ITI TF-2: 3.97
  Lookup Code [ITI-98] Initiator O (Note 1) ITI TF-2: 3.98
  Validate Code [ITI-99] Initiator O (Note 1) ITI TF-2: 3.99
  Query Concept Map [ITI-100] Initiator O ITI TF-2: 3.100
  Translate Code [ITI-101] Initiator O ITI TF-2: 3.101
Terminology Repository Query Value Set [ITI-95] Responder R ITI TF-2: 3.95
  Query Code system [ITI-96] Responder R ITI TF-2: 3.96
  Expand Value Set [ITI-97] Responder R ITI TF-2: 3.97
  Lookup Code [ITI-98] Responder R ITI TF-2: 3.98
  Validate Code [ITI-99] Responder R ITI TF-2: 3.99
  Query Concept Map [ITI-100] Responder O ITI TF-2: 3.100
  Translate Code [ITI-101] Responder O ITI TF-2: 3.101

Note 1: A Terminology Consumer shall support at least one of these transactions.

1:51.1.1 Actor Descriptions and Actor Profile Requirements

Most requirements are documented in ITI TF-2 Transactions. This section documents any additional requirements on profile’s actors.

In addition to an IHE Integration Statement, the Terminology Consumer and Terminology Responder shall provide a CapabilityStatement Resource indicating the capabilities defined for all the transactions implemented including all query parameters implemented. See ITI TF-2: Appendix Z.4.

1:51.2 SVCM Actor Options

Options that may be selected for this profile are listed in Table 1:51.2-1 along with the actors to which they apply. Dependencies between options, when applicable, are specified in notes.

Table 1:51.2-1: Sharing Value Sets - Actors and Options

Actor Options Volume & Section
Terminology Consumer Translate Option Section 1:51.2.1
Terminology Repository Translate Option Section 1:51.2.1

1:51.2.1 Translate Option

The translate option enables querying for Concept Maps and translating codes.

A Terminology Consumer or Terminology Repository that supports the Translate Option shall support the Query Concept Map [ITI-100] and Translate Code [ITI-101] transactions. See ITI TF-2: 3.100 and ITI TF-2: 3.101.

1:51.3 SVCM Required Actor Groupings

An actor from this profile (Column 1) shall implement all of the required transactions and/or content modules in this profile in addition to all of the requirements for the grouped actor (Column 2).

Table 1:51.3-1: SVCM Profile - Required Actor Groupings

SVCM Actor Actor(s) to be grouped with Reference Content Bindings Reference
Terminology Consumer None
Terminology Repository ATNA / Secure Node or Secure Application ITI TF-1: 9

1:51.4 SVCM Overview

1:51.4.1 Concepts

1:51.4.1.1 Definitions

The FHIR terminology specification defines the following terms, see http://hl7.org/fhir/R4/terminology-module.html:

1:51.4.1.2 Business Identifiers

Some value sets, code systems, and concept maps have business identifiers, e.g., OIDs. See Section ITI TF-2: Z.9.1. In SVCM, these business identifiers should be stored in the .identifier element. The FHIR specification strongly recommends using an http URL in the .url element, but if this is not possible, then the .url element can contain a URI, for example, an OID as urn:oid:X.X.X.

Recommended Example:

  "url" : "http://example.org/fhir/ValueSet/example",
  "identifier" : [{
    "system" : "urn:ietf:rfc:3986",
    "value" : "urn:oid:1.2.3.4.5.6.7.8.9"
  }],

Or if not possible:

  "url" : "urn:oid:1.2.3.4.5.6.7.8.9",
  "identifier" : [{
    "system" : "urn:ietf:rfc:3986",
    "value" : "urn:oid:1.2.3.4.5.6.7.8.9"
  }],

1:51.4.2 Use Cases

The following use cases provide examples of how this profile might be used by various disciplines.

1:51.4.2.1 Use Case #1 - Code System, Value Set, and Concept Map Discovery

In this use case, a Terminology Consumer retrieves and filters a list of Code Systems, Value Sets, or Concept Maps available in a Terminology Repository.

1:51.4.2.1.1 Code System or Value Set Discovery Use Case Description

A Terminology Consumer requires a method for querying a Terminology Repository for a list of available Value Sets, Code Systems, and Concept Maps, based on filter criteria. Periodically, a health care organization publishes updated Value Sets, Code Systems, and Concept Maps documenting the codes that point of service systems must use. An electronic medical record system, the Terminology Consumer, periodically retrieves the list of available Value Sets, Code Systems, and Concept Maps that are relevant to its care unit and verifies that it has an up-to-date version of each cached locally.

Terminology RepositoryTerminology Consumer"Query Value Set [ITI-95]""Query Code System [ITI-96]""Query Concept Map [ITI-100]"

Figure 1:51.4.2.1.1-1: Discovery Interaction Diagram

1:51.4.2.2 Use Case #2 - Expand a Value Set

In this use case, a point of service system is providing a list of codes to provide decision support to a clinician prescribing medications.

1:51.4.2.2.1 Expand a Value Set Use Case Description

A clinician uses a computerized physician order entry (CPOE) system to order opioid medications for an inpatient. A value set containing all of the opiate medication formulations that are considered to have abuse potential can be pulled to support clinical decision support in a health record system. Using a pre-assigned identifier, the CPOE system queries the Terminology Repository for an “expanded” Value Set to retrieve the list of codes based on the definition of the Value Set. The codes returned by an “expand” operation are suitable for providing decision support and validation.

Terminology RepositoryTerminology Consumer"Expand Value Set [ITI-97]"

Figure 1:51.4.2.2.1-1: Expand a Value Set Use Case Diagram

1:51.4.2.3 Use Case #3 - Look up a code

In this use case, a Terminology Consumer asks a Terminology Repository for details about a particular code system/code combination.

1:51.4.2.3.1 Look up a code Use Case Description

A physician updates a patient’s problems list (conditions) at a point of service terminal. After a code is entered, the point of service terminal—the Terminology Consumer—queries a Terminology Repository to retrieve the full details of the code using the lookup operation. The Terminology Repository returns information for both display and processing purposes, such as a longer narrative description along with inclusions and exclusions, allowing the physician to verify that she entered the correct code and to make a correction if necessary.

Terminology RepositoryTerminology Consumer"Lookup Code [ITI-98]"

Figure 1:51.4.2.3.1-1: Look Up a Concept Use Case Diagram

1:51.4.2.4 Use Case #4 - Validate a code

In this use case, a point of service system verifies whether a code is a valid member of a value set.

1:51.4.2.4.1 Validate a code Use Case Description

A health system publishes value sets consisting of codes relevant to particular clinical contexts and related procedures. Value sets are updated periodically to represent changes in clinical practice and available medicines and supplies. Before submitting an update to a patient record, an electronic medical record system checks a code through the Terminology Repository to validate each medical code. The Terminology Repository returns true/false indicating whether a code/concept is in the set of codes associated with a value set.

Terminology RepositoryTerminology Consumer"Validate Code [ITI-99]"

Figure 1:51.4.2.4.1-1: Validate a Code Use Case Diagram

1:51.4.2.5 Use Case #5 - Translate a code

In this use case, a concept is translated from a source code system, possibly a proprietary local terminology, to a target code system, such as LOINC.

1:51.4.2.5.1 Translate a Code Use Case Description

In this example, an ambulatory clinic might refer to a lab test as a “white count”. To report and analyze these tests accurately, the clinic must submit its data using a shared terminology standard used within the health system, such as LOINC. The clinic’s reporting system queries a Terminology Repository to translate its local “white count” concept to a LOINC concept using a pre-loaded Concept Map, which defines relationships between concepts in a source Code System and one or more target Code Systems. The Terminology Repository returns LOINC 6690-2 “Leukocytes [#/volume] in Blood by Automated count”.

Terminology RepositoryTerminology Consumer"Translate Code [ITI-101]"

Figure 1:51.4.2.5.1-1: Translate a Code Use Case Diagram

1:51.5 SVCM Security Considerations

The contents handled by the SVCM Profile are not patient-specific, so there are no risks to patient privacy. Some Expanded Value Sets are of little value to an attacker as they are public tables of non-critical information (e.g., Expanded Value Sets used for coding of body parts in medical exams). Other Expanded Value Sets might need protection against malicious modification or interception. For example, there can be integrity risks such as masquerade, or the modification of Expanded Value Sets. Another possible type of risk would be at the privacy and confidentiality level, such as the interception of an Expanded Value Set containing confidential data. The profile will allow mitigation of those risks when needed in the following manner:

  • A Terminology Repository shall be grouped with an ATNA Secure Node or Secure Application. Since the Terminology Consumer is not required to be grouped with the Secure Node or Secure Application, the Terminology Repository shall support both secure and non-secure connections.

  • Terminology Repositories shall be able to restrict access to a specific Expanded Value Set to authorized and authenticated nodes, while allowing unauthenticated network queries to other Expanded Value Sets.

See ITI TF-2: Appendix Z.8 “Mobile Security Considerations”.

1:51.6 SVCM Cross Profile Considerations

1:51.6.1 Sharing Value Sets (SVS)

When an SVCM Terminology Repository is grouped with an SVS Value Set Repository, then it should ensure the business identifiers are aligned. SVS uses OIDs as value set ids. SVCM stores these in the ValueSet.identifier element. See Section 51.4.1.2.