Reference Set Design
The reference set mechanism is developed to support a range of different purposes, and therefore it has a high degree of flexibility and extensibility. As evidence of the flexibility in the design, some reference set types use a unique set of attributes in addition to the common reference set attributes. The additional attributes have been specified to meet the requirements for use of that particular type of reference set. The extendibility of the design allows reference sets to be customized to suite specific or local requirements. However, to support distribution, sharing and use of a reference set, it is important that the specific reference set design is consistently specified and represented. Thus, all attributes specific for a particular reference set type must be represented in a form which allows consumers of a reference set to validate and interpret the reference set.
The figure below provides an overview of some of the terms that are central for understanding the reference set design and how reference sets are specified and represented . Each of these terms will be elaborated in the following pages.

Reference Set Types and Descriptors
SNOMED International specifies a set of reference set types, which describes its own specific properties. This means that reference sets that are developed to conform to a specified pattern will have the same release file format as other reference sets of the same type.
The pattern of a specific reference set type is described by a Descriptor Template. This means that the Descriptor Template is represented by a set of members of the 900000000000456007 | Reference set descriptor reference set (foundation metadata concept)| .
All Descriptor Templates present in the international Release of SNOMED CT can be found in the reference set Descriptor.
All reference sets that are released as part of the International Edition or from a National Release Center will have an associated Descriptor Template for the reference set. Where using a reference set for which a Descriptor Template has not been created, and additional information about the reference set is needed, the Descriptor Template of the closest ancestor of the concept describing the reference set that does have a Descriptor Template may be used. This means that a reference sets with no specified Descriptor Template inherits the Template from its supertype.
An organization that releases reference sets should only release them without Descriptor Templates if the reference set follows a predefined pattern or if it is sure that its consumers do not require the information held within the Descriptor Template. You should note that Descriptor Templates are optional for other organizations, besides from SNOMED International, that create reference sets that do not follow a predefined pattern. However, we strongly recommend to specify the reference set descriptor template in the reference set Descriptor, to support automatic processing, validation and sharing of the reference sets.The diagram below illustrates the different reference set types and highlight some of the specific reference sets that are included in the International Edition of SNOMED CT.

Reference Set Descriptor
The 900000000000456007 | reference set descriptor reference set| is a reference set used to specify the format of all reference sets included in a release. The data type and meaning of the referenced component and each additional field within each reference set is described by this reference set. More specifically, the reference set descriptor is used to define:
The order of appearance of additional attributes (other than those mandatory for all reference sets). The AttributeOrder attribute
The name and purpose of the additional attributes. The attributeDescription attribute
The data types for the additional attributes. The attributeType attribute
The table below shows an excerpt from the Reference Set Descriptor, to illustrate how the attributes of the predefined reference set types are specified consistently.
Table: Sample of the | reference set descriptor reference set (foundation metadata concept) | (human-readable view with some attributes omitted for brevity)
446609009
Simple type reference set
449608002
Referenced component
900000000000461000
Concept type component
0
447258008
Ordered type reference set
449608002
Referenced component
900000000000460000
Component type
0
447258008
Ordered type reference set
447255006
Priority order reference set attribute
900000000000478000
Unsigned integer
1
447258008
Ordered type reference set
447257003
"Linked to" reference set attribute
900000000000460000
Component type
2
900000000000480006
Attribute value type
449608002
Referenced component
900000000000460000
Component type
0
900000000000480006
Attribute value type
900000000000491004
Attribute value
900000000000461000
Concept type component
1
900000000000496009
Simple map
900000000000500006
Map source concept
900000000000461000
Concept type component
0
900000000000496009
Simple map
900000000000499002
Scheme value
900000000000465000
String
1
900000000000506000
Language type
900000000000510002
Description in dialect
900000000000462000
Description type component
0
900000000000506000
Language type
900000000000511003
Acceptability
900000000000461000
Concept type component
1
900000000000512005
Query specification type reference set
900000000000514006
Generated reference set
900000000000461000
Concept type component
0
900000000000512005
Query specification type reference set
900000000000515007
Query
900000000000465000
String
1
900000000000516008
Annotation type
900000000000518009
Annotated component
900000000000461000
Concept type component
0
900000000000516008
Annotation type
900000000000519001
Annotation
900000000000465000
String
1
900000000000521006
Association type
900000000000532006
Association source component
900000000000460000
Component type
0
900000000000521006
Association type
900000000000533001
Association target component
900000000000460000
Component type
1
Specializing a Descriptor Template
When a new reference set is created in an extension, it must (by default) conform to the reference set descriptors of its closest supertype (if one exists). Creation of a description template for a new reference set is optional in an extension, if the reference set has a supertype which itself has a descriptor template.
However, it is possible for a reference set to specialize the descriptor template of its supertype, by creating a copy and replacing the 900000000000458008 | Attribute description| or 900000000000459000 | Attribute type| values with a subtype.
For example, if a reference set has a descriptor, in which the 900000000000458008 | Attribute description| = 449608002 | Referenced component| and the 900000000000459000 | Attribute type| = 900000000000460005 | Component type| , then the reference set's subtype may replace this descriptor with one in which the 900000000000458008 | Attribute description| = 900000000000460005 | Component type| and the 900000000000459000 | Attribute type| = 900000000000461009 | Concept type component| (since 900000000000461009 | Concept type component| is a subtype of 900000000000460005 | Component type| ). In this way, the reference set descriptors may be specialized for use by the subtypes of the reference set.
General Functionality and Specific Use
All reference set patterns provide general functionality which is enabled by the attributes and data type constraints specified for that particular pattern.
For example, the general functionality of an association reference set is to represent a set of unordered associations of a particular type between SNOMED CT components. This general functionality may be sufficient to fulfill a range of different requirements. It may be used to associate inactive components with active concepts which can be used as suitable replacements for the inactive concept. This use may be important for maintenance when a single reference set is used in a range of locations, and it is required to ensure consistent use of alternatives when content is inactivated. Another use of the same pattern may be to associate findings and procedures, which enables a simple form of conditional documentation support, for example, when a particular finding has been recorded, these are the procedures which may be appropriate.

When deciding what reference set to develop it is therefore important to be aware of what requirements there are for use of that particular reference set, in order to decide on a pattern, which reflect the general functionality that meet a specific usage.
The name of a reference set pattern also reflects the general functionality of the pattern. reference sets that are developed following a specified pattern will be assigned a description including both a name describing that particular reference set and a term representing the pattern of the reference set. For further information, see Naming Conventions for Reference Sets.
Common Reference Set Format
Reference sets are made available as release files that represent database tables. . Each reference set member is represented using the set of attributes shown in the figure below. These common attributes include the four general identification and versioning attributes (shared with components) and two specific reference set attributes. This common set of attributes is sufficient to represent a versioned subset of SNOMED CT components.
As mentioned earlier, reference sets are used for purposes that go beyond subset representation. Different types of reference set are defined for each specific purpose. The definition of each reference set type specifies additional attributes and the way these are used. In these cases, each reference set member is represented by the combination of the common and type specific attributes.

Identification and Versioning Attributes
The reference sets have the same four initial attributes as the content components concepts, descriptions and relationships. These attributes are used to support identification, versioning and modularization.
Table: Overview and description of the general component attributes
Attribute
Description
id
The id attribute of the reference set uses the data type Universally Unique Identifier (UUID) to provide a globally unique identifier for each member of the reference set. This is different from the core Components of SNOMED CT, which use the data type SCTID. The UUIDs are 128-bit unsigned integers. Their unique values are generated by widely available algorithms and not part of the SCTID namespace. This avoids the need to track issuing of identifiers for thousands of reference set rows that are needed for some reference sets.
effectiveTime
The effectiveTime attribute uses the data type Time to specify the date on which the specific version of the component was released.
active
The active attribute uses the Boolean data type to specify whether or not the specific version of the component is active.
moduleId
The moduleId attribute identifies the module in which the component is currently being maintained.
The three attributes, id, effectiveTime and active are used together to version each component.

Specific Reference Set Attributes
There are also two attributes that are shared by all reference set types, but not with the content components (concepts, descriptions and relationships). These attributes are called the refsetId and the referencedComponentId.
Table: Overview and description of the Specific reference set attributes. These attributes are present for all types of reference sets, but some reference sets have more attributes
Attribute
Description
refsetId
The refsetId uses a SCTID to identify the reference set. The attribute refers to a concept and the concept's associated descriptions names the reference set. The concept is also a subtype to the concept that represents the type of reference set. One example of concept referenced by the refsetId is the concept 447566000 which description | Virtual medicinal product simple reference set | is the name of the reference set.
referencedComponentId
The referencedComponentId identifies a component referenced by the reference set. A reference set of type simple reference set represents a subset of SNOMED CT components. For this reference set type the referenced components are the subset members. One example of a component included in the 447566000 | Virtual medicinal product simple reference set| is | Warfarin sodium 5mg tablet |
Reference Set Member and Referenced Component
The two terms "reference set member" and "referenced component" are sometimes used interchangeably, but when working with reference sets it is important to be aware of the distinct meaning of both of these terms, which should not be confused.
A reference set member is simply a single row in a specific reference set. Each member therefore includes the identifier of the member, the membership versioning information, the identifier of the component that is referenced by that row and all the other information that is recorded in a row of the reference set. In contrast, the 'referenced component' is the concept, description or relationship whose identifier appears in the referencedComponentId of the reference set.
Table: The referenced component is the value of the referencedComponentId attribute
Sample content from 447565001 | Virtual therapeutic moiety simple reference set|
refsetId
referencedComponentId (Referenced component)
Reference Set Identification
For practical reasons, a reference set needs to be identified and named, so it can be referred to unambiguously. In a reference set, the reference set is identified by the refsetId attribute, which refers to a concept.
This concept is a subtype of the concept 900000000000455006 | Reference set (foundation metadata concept)| .
As for other all concepts in SNOMED CT, descriptions and relationships are added to enable human-readable representation of the concept, and to place the concept in the SNOMED CT hierarchy. The descriptions provide the name of the reference set, and the relationship refers to the concept representing the reference set type. This is illustrated in the diagram below where the concept with the id 49999999102 has the associated description "Infectious disease simple reference set", and the relationship places the concept as a subtype of the concept 446609009 | Simple type reference set (foundation metadata concept)| .

Reference sets of a particular type are identified by concepts that are subtypes of the concept representing the reference set type.
900000000000983016 900000000000983016 |Reference set| 446609009 |Simple type reference set| 447250001 |Complex map type reference set| 447258008 |Ordered type reference set| 609331003 |Extended map type reference set| 609430003 |Concept model reference set| 705109006 |Code to expression type reference set| 705111002 |Map correlation and origin type reference set| 723564002 |MRCM reference set| 733613001 |Intensional definition reference set| 733614007 |Expansion history reference set| 733618005 |Ordered association type reference set| 733619002 |Ordered component type reference set| 762676003 |OWL expression type reference set| 900000000000456007 |Reference set descriptor| 900000000000480006 |Attribute value type| 900000000000496009 |Simple map| 900000000000506000 |Language type| 900000000000512005 |Query specification type| 900000000000516008 |Annotation type| 900000000000521006 |Association type| 900000000000534007 |Module dependency| 900000000000538005 |Description format reference set|
The organization responsible for creating the reference set may add intermediate subtype concepts of the reference set type concept to group together reference sets of that type for which they are responsible. For example, the simple reference sets created by the SNOMED International group responsible for General Practice / Family Practice reference sets are organized as shown below.
2920887014 2920887014 |General Practice / Family Practice reference set| 450971007 |GP/FP reason for encounter reference set| 450974004 |Symptoms and signs reference set for GP/FP reason for encounter| 450976002 |Disorders and diseases reference set for GP/FP reason for encounter| 450977006 |Results reference set for GP/FP reason for encounter| 450978001 |Family history reference set for GP/FP reason for encounter| 450980007 |Allergies reference set for GP/FP reason for encounter| 450981006 |Adverse drug reactions reference set for GP/FP reason for encounter| 450982004 |Processes and procedures reference set for GP/FP reason for encounter| 450983009 |Social history reference set for GP/FP reason for encounter| 450973005 |GP/FP health issue reference set| 450984003 |Symptoms and signs reference set for GP/FP health issue| 450985002 |Disorders and diseases reference set for GP/FP health issue| 450986001 |Results reference set for GP/FP health issue| 450988000 |Family history reference set for GP/FP health issue| 450989008 |Allergies reference set for GP/FP health issue| 450990004 |Adverse drug reactions reference set for GP/FP health issue| 450991000 |Processes and procedures reference set for GP/FP health issue| 450992007 |Social history reference set for GP/FP health issue|
Pre-defined and Customized Reference Sets
SNOMED CT specifies a set of reference set types that follow specific patterns. However, different purposes and uses may impose different requirements. Therefore, flexibility is a core feature of the reference set mechanism. This flexibility is manifested by the fact that reference sets can be applied in ways that meet specific requirements; options include:
Create reference set based on existing pattern
Creating a simple reference set, an ordered reference set (or any other reference set) using the predefined pattern for this reference set type. Without modifying or constraining the structure of this pattern.
Create reference set based on existing pattern, however constraining the datatypes of specific attributes
Create a reference set using a predefined pattern, however specializing the descriptor template, by creating a copy and replacing the |Attribute description| or |Attribute type| values with a subtype.
Customize reference set by defining a new reference set pattern
Define a new reference set pattern based on new or existing reference set types, attributes, and attribute values. (Since you could use an existing type as a starting point.)
This means that if the pattern of existing reference set types is not sufficient for local requirements, then new reference set patterns can be specified and included in a national or local SNOMED CT Extension.
Customized Reference Sets
There might be situations where none of the defined reference set patterns are sufficient to fulfill the requirements for a specific use case for an implementing organization/project. In this case, it is possible to develop customized reference sets, which include the exact attributes necessary to meet the requirements.
If an existing pattern almost meets the requirements a developing organization may want to simply add additional attributes to an existing reference set pattern. If none of the existing patterns can be adapted it is also possible to develop a new reference set pattern or a reference set that does not follow any specified pattern. The different approaches to customizing a reference set are illustrated in the figure below.

When creating customized reference sets, it is important to ensure that the structure and content of the reference set can be automatically processed and validated. Therefore, customized reference sets should be clearly specified, which can be done specifying the reference set pattern in the reference set descriptor. Specifying customized reference sets in the reference set descriptor enables users of the reference set to validate any reference set of this particular pattern against the specified definition.
Last updated