# MRCM Attribute Range Reference Set

## Purpose

An [723592007 |MRCM attribute range reference set|](http://snomed.info/id/723592007) allows attributes to be associated with a valid value range for a given SNOMED CT content type and rule strength. The range of each attribute is defined using an Expression Constraint. This expression constraint represents the set of concepts, expressions, or concrete values that may be used as the value of the given attribute.[1](https://confluence.ihtsdotools.org/display/DOCMRCM/5.3+MRCM+Attribute+Range+Reference+Set#Footnote1)\
The [723592007 |MRCM attribute range reference set|](http://snomed.info/id/723592007) also provides a summary of the concept model rule associated with each attribute (including all valid domains and the given range) using an Expression Constraint representation. This attribute rule can be completely auto-generated by combining information from the [723604009 |MRCM attribute domain reference set|](http://snomed.info/id/723604009) and the [723592007 | MRCM attribute range reference set|](http://snomed.info/id/723592007) .

## Data Structure

**An** [**723592007 |MRCM attribute range reference set|**](http://snomed.info/id/723592007) **is structured as shown in the following table.**

<table data-full-width="true"><thead><tr><th>Field</th><th>Data type</th><th>Purpose</th><th>Mutable</th><th>PK*</th></tr></thead><tbody><tr><td>id</td><td>UUID</td><td><p>A 128 bit unsigned Integer, uniquely identifying this reference set member.</p><p>Different versions of a <em>reference set member</em> share the same id but have different effectiveTime. This allows a <em>reference set member</em> to be modified or made inactive (i.e. removed from the active set) at a specified time.</p></td><td><strong>NO</strong></td><td><strong>YES</strong><br>(Full /Snapshot)</td></tr><tr><td>effectiveTime</td><td>Time</td><td><p>The inclusive date or time at which this version of the identified reference set member became the current version.</p><p><strong>Note</strong>: In distribution files the effectiveTime should follow the short ISO date format (<em>YYYYMMDD</em>) and should not include the hours, minutes, seconds or timezone indicator.</p><p>The current version of this reference set member at time <em>T</em> is the version with the most recent effectiveTime prior to or equal to time <em>T</em>.</p></td><td><strong>YES</strong></td><td><p><strong>YES</strong><br>(Full)</p><p>Optional (Snapshot)</p></td></tr><tr><td>active</td><td>Boolean</td><td><p>The state of the identified reference set member as at the specified effectiveTime .</p><p>If active = 1 (true) the reference set member is part of the current version of the set, if active = 0 (false) the reference set member is not part of the current version of the set.</p></td><td><strong>YES</strong></td><td><strong>NO</strong></td></tr><tr><td>moduleId</td><td>SCTID</td><td><p>Identifies the SNOMED CT module that contains this reference set member as at the specified effectiveTime .</p><p>The value must be a subtype of <a href="http://snomed.info/id/900000000000443000">900000000000443000 |Module (core metadata concept)|</a> within the metadata hierarchy.</p></td><td><strong>YES</strong></td><td><strong>NO</strong></td></tr><tr><td>refsetId</td><td>SCTID</td><td><p>Identifies the reference set to which this reference set member belongs.</p><p>In this case, a subtype descendant of: <a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></p></td><td><strong>NO</strong></td><td><strong>NO</strong></td></tr><tr><td>referencedComponentId</td><td>SCTID</td><td>A reference to the SNOMED CT component to be included in the reference set. A reference to the SNOMED CT attribute concept to which the range defined by this member applies.</td><td><strong>NO</strong></td><td><strong>NO</strong></td></tr><tr><td>rangeConstraint</td><td>String</td><td><p>A parsable string, which defines the valid set of values that may be used for the given attribute (identified by the referencedComponentId).</p><p>If the attribute in the referencedComponentId is a subtype of <a href="http://snomed.info/id/762705008">762705008 |Concept model object attribute (attribute)|</a> then the rangeConstraint must be an <strong>expression constraint</strong>, which can be parsed using the ABNF rules defined by the <a href="/spaces/sOJBD7YbxAy9bD1Ko9L9">Expression Constraint Language</a>.</p><p>If the attribute in the referencedComponentId is a subtype of <a href="http://snomed.info/id/762706009">762706009 |Concept model data attribute (attribute)|</a> then the rangeConstraint must be parsable using the <strong>concreteValueReplacement</strong> ABNF rule specified in the <a href="/spaces/zMLFwMoInWP79jP2Up2p/pages/UZroJUFI9XS9NhTq8NU7">SNOMED CT Template Syntax</a>. For example, the following rangeConstraint includes the set of all positive integers: <strong>int</strong> (>#0..)</p></td><td><strong>YES</strong></td><td><strong>NO</strong></td></tr><tr><td>attributeRule</td><td>String</td><td>An Expression Constraint that captures the domain, range and cardinality constraints for the given attribute, rule strength and content type.<br>This string can be parsed using the ABNF syntax defined for the Expression Constraint Language.<br>If ranges with concrete values are required, the <a href="/spaces/sOJBD7YbxAy9bD1Ko9L9">Expression Constraint Language</a> can be extended as described above (for rangeConstraint).</td><td><strong>YES</strong></td><td><strong>NO</strong></td></tr><tr><td>ruleStrengthId</td><td>SCTID</td><td>A subtype of <a href="http://snomed.info/id/723573005">723573005 |Concept model rule strength|</a> which specifies whether the given rule is mandatory (resulting in an error) or optional (resulting in a warning).</td><td><strong>YES</strong></td><td><strong>NO</strong></td></tr><tr><td>contentTypeId</td><td>SCTID</td><td>A subtype of <a href="http://snomed.info/id/723574004">723574004 |Content type|</a> which indicates the type of SNOMED CT content over which this rule applies.</td><td><strong>YES</strong></td><td><strong>NO</strong></td></tr></tbody></table>

{% hint style="info" %}
PK\* indicates if the attribute is part of the primary key for that file/table.
{% endhint %}

***

## Metadata

The following metadata hierarchy supports this reference set:

<table data-header-hidden data-full-width="false"><thead><tr><th></th></tr></thead><tbody><tr><td><ul><li><p><a href="http://snomed.info/id/900000000000454005">900000000000454005 |Foundation metadata concept|</a></p><ul><li><p><a href="http://snomed.info/id/900000000000455006">900000000000455006 |Reference set|</a></p><ul><li><p><a href="http://snomed.info/id/723564002">723564002 |MRCM reference set|</a></p><ul><li><p><a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></p><ul><li><a href="http://snomed.info/id/723562003">723562003 |MRCM attribute range international reference set|</a></li></ul></li></ul></li></ul></li><li><p><a href="http://snomed.info/id/900000000000457003">900000000000457003 |Reference set attribute|</a></p><ul><li><a href="http://snomed.info/id/723576002">723576002 |Attribute rule|</a></li><li><p><a href="http://snomed.info/id/723574004">723574004 |Content type|</a> <a href="https://confluence.ihtsdotools.org/display/DOCMRCM/5.3+MRCM+Attribute+Range+Reference+Set#Footnote2"><sup>2</sup></a></p><ul><li><p><a href="http://snomed.info/id/723593002">723593002 |All new precoordinated SNOMED CT content|</a></p><ul><li><p><a href="http://snomed.info/id/723594008">723594008 |All precoordinated SNOMED CT content|</a></p><ul><li><a href="http://snomed.info/id/723596005">723596005 |All SNOMED CT content|</a></li></ul></li><li><p><a href="http://snomed.info/id/723595009">723595009 |All postcoordinated SNOMED CT content|</a></p><ul><li><a href="http://snomed.info/id/723596005">723596005 |All SNOMED CT content|</a></li></ul></li></ul></li></ul></li><li><a href="http://snomed.info/id/723575003">723575003 |Range constraint|</a></li><li><p><a href="http://snomed.info/id/723573005">723573005 |Concept model rule strength|</a></p><ul><li><a href="http://snomed.info/id/723597001">723597001 |Mandatory concept model rule|</a></li><li><a href="http://snomed.info/id/723598006">723598006 |Optional concept model rule|</a></li></ul></li></ul></li></ul></li></ul></td></tr></tbody></table>

***

{% hint style="info" %}

1. If ranges including concrete values (such as integers or strings) are required, the Expression Constraint Language can be extended, as described for *rangeConstraint* in the Data Structure section on this page.
2. Please note that the [723574004 |Content type|](http://snomed.info/id/723574004) hierarchy is designed using 'universal restriction' logic. The hierarchy may therefore appear to be 'upside down'. However, it was designed in this way because if an MRCM rule applies to [723596005 |All SNOMED CT content|](http://snomed.info/id/723596005) then it also applies to the Content Types that are a supertype of this - including [723594008 |All precoordinated SNOMED CT content|](http://snomed.info/id/723594008) and [723595009 |All postcoordinated SNOMED CT content|](http://snomed.info/id/723595009) .
   {% endhint %}

## Reference Set Descriptor and Example Data

{% hint style="info" %}
**Notes on the tables used to show descriptors and examples**

The reference set example tables on this page have been revised as follows to aid clarity and understanding:

* The first four columns which are present in all release files are not shown. The omitted columns (id, effectiveTime, active, moduleId) are used in the same way in all referenced sets to support identification, versioning and packaging. They do not directly affect the specific features of a particular reference set or reference set type.
* Reference set columns that contain SNOMED CT identifiers are expanded to show details of the concept or description referenced by that identifier. In some cases, the term is shown in the same column using the expression syntax, in other cases an additional column with a name suffix '\_term' has been added. In the standard reference set files only the identifier is present in the column and there is no added column for the term. When using reference sets, the term and other details of the component are looked up from the relevant component release files.
  {% endhint %}

#### Descriptor Template

**The table below shows the reference set descriptor for a reference set that follows the** [**723592007 |MRCM attribute range reference set|**](http://snomed.info/id/723592007) **pattern.**

<table data-header-hidden data-full-width="true"><thead><tr><th width="228.706298828125"></th><th width="245.25140380859375"></th><th width="226.5906982421875"></th><th width="232.7974853515625"></th><th></th></tr></thead><tbody><tr><td><strong>refsetId</strong></td><td><strong>referencedComponentId</strong></td><td><strong>attributeDescription</strong></td><td><strong>attributeType</strong></td><td><strong>attribute Order</strong></td></tr><tr><td><a href="http://snomed.info/id/900000000000456007">900000000000456007 |Reference set descriptor|</a></td><td><a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></td><td><a href="http://snomed.info/id/449608002">449608002 |Referenced component|</a></td><td><a href="http://snomed.info/id/900000000000461009">900000000000461009 |Concept type component|</a></td><td>0</td></tr><tr><td><a href="http://snomed.info/id/900000000000456007">900000000000456007 |Reference set descriptor|</a></td><td><a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></td><td><a href="http://snomed.info/id/723575003">723575003 |Range constraint|</a></td><td><a href="http://snomed.info/id/707000009">707000009 |SNOMED CT parsable string|</a></td><td>1</td></tr><tr><td><a href="http://snomed.info/id/900000000000456007">900000000000456007 |Reference set descriptor|</a></td><td><a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></td><td><a href="http://snomed.info/id/723576002">723576002 |Attribute rule|</a></td><td><a href="http://snomed.info/id/707000009">707000009 |SNOMED CT parsable string|</a></td><td>2</td></tr><tr><td><a href="http://snomed.info/id/900000000000456007">900000000000456007 |Reference set descriptor|</a></td><td><a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></td><td><a href="http://snomed.info/id/723573005">723573005 |Concept model rule strength|</a></td><td><a href="http://snomed.info/id/900000000000461009">900000000000461009 |Concept type component|</a></td><td>3</td></tr><tr><td><a href="http://snomed.info/id/900000000000456007">900000000000456007 |Reference set descriptor|</a></td><td><a href="http://snomed.info/id/723592007">723592007 |MRCM attribute range reference set|</a></td><td><a href="http://snomed.info/id/723574004">723574004 |Content type|</a></td><td><a href="http://snomed.info/id/900000000000461009">900000000000461009 |Concept type component|</a></td><td>4</td></tr></tbody></table>

***

#### Example Data

**The table below shows some example rows from a reference set that follows the format of the** [**723592007 |MRCM attribute range reference set|**](http://snomed.info/id/723592007)**.**

<table data-header-hidden data-full-width="true"><thead><tr><th width="289.546875"></th><th width="210.77777099609375"></th><th width="343.270263671875"></th><th width="547.9312744140625"></th><th width="212.4188232421875"></th><th width="195.2313232421875"></th></tr></thead><tbody><tr><td><strong>refsetId</strong></td><td><strong>referencedComponentId</strong></td><td><strong>rangeConstraint</strong></td><td><strong>attributeRule</strong></td><td><strong>ruleStrengthId</strong></td><td><strong>contentTypeId</strong></td></tr><tr><td><a href="http://snomed.info/id/723562003">723562003 |MRCM attribute range international reference set|</a></td><td><a href="http://snomed.info/id/255234002">255234002 |After|</a></td><td>&#x3C;&#x3C; <a href="http://snomed.info/id/404684003">404684003 |Clinical finding (finding)|</a> OR &#x3C;&#x3C; <a href="http://snomed.info/id/71388002">71388002 |Procedure (procedure)|</a></td><td>(&#x3C;&#x3C; <a href="http://snomed.info/id/404684003">404684003 |Clinical finding (finding)|</a> OR &#x3C;&#x3C; <a href="http://snomed.info/id/272379006">272379006 |Event (event)|</a> ): [0..*] { [0..*] <a href="http://snomed.info/id/255234002">255234002 |After|</a> = (&#x3C;&#x3C; <a href="http://snomed.info/id/404684003">404684003 |Clinical finding (finding)|</a> OR &#x3C;&#x3C; <a href="http://snomed.info/id/71388002">71388002 |Procedure (procedure)|</a> )}</td><td><a href="http://snomed.info/id/723597001">723597001 |Mandatory concept model rule|</a></td><td><a href="http://snomed.info/id/723596005">723596005 |All SNOMED CT content|</a></td></tr><tr><td><a href="http://snomed.info/id/723562003">723562003 |MRCM attribute range international reference set|</a></td><td><a href="http://snomed.info/id/408729009">408729009 |Finding context|</a></td><td>&#x3C;&#x3C; <a href="http://snomed.info/id/410514004">410514004 | Finding context value (qualifier value)|</a></td><td>&#x3C;&#x3C; <a href="http://snomed.info/id/413350009">413350009 |Finding with explicit context (situation)|</a> : [0..*] { [0..1] <a href="http://snomed.info/id/408729009">408729009 |Finding context|</a> = &#x3C;&#x3C; <a href="http://snomed.info/id/410514004">410514004 |Finding context value (qualifier value)|</a> }</td><td><a href="http://snomed.info/id/723597001">723597001 |Mandatory concept model rule|</a></td><td><a href="http://snomed.info/id/723596005">723596005 |All SNOMED CT content|</a></td></tr><tr><td><a href="http://snomed.info/id/723562003">723562003 |MRCM attribute range international reference set|</a></td><td><a href="http://snomed.info/id/272741003">272741003 |Laterality|</a></td><td>&#x3C;&#x3C; <a href="http://snomed.info/id/182353008">182353008 | Side (qualifier value)|</a></td><td>&#x3C;&#x3C; <a href="http://snomed.info/id/91723000">91723000 |Anatomical structure (body structure)|</a> : [0..1] <a href="http://snomed.info/id/272741003">272741003 |Laterality|</a> = &#x3C;&#x3C; <a href="http://snomed.info/id/182353008">182353008 |Side (qualifier value)|</a></td><td><a href="http://snomed.info/id/723597001">723597001 |Mandatory concept model rule|</a></td><td><a href="http://snomed.info/id/723596005">723596005 |All SNOMED CT content|</a></td></tr></tbody></table>

***

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=Release+File+Specification&#x26;entry.670899847=MRCM%20Attribute%20Range%20Reference%20Set" class="button primary">Provide Feedback</a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snomed.org/snomed-ct-specifications/snomed-ct-release-file-specification/reference-set-release-file-specification/5.2-reference-set-types/5.2.4-metadata-reference-sets/5.2.4.6-mrcm-attribute-range-reference-set.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
