# Information Slots

## Overview

Unlike replacement slots, information slots are added to an expression template purely to provide metadata about how the template should be processed. When an expression template is processed, the information contained in the information slots is used and then the information slot itself is removed.

Information slots may be added to an expression template in one of three places:

1. **Before a focus concept slot** to indicate information about the focus concept that follows,
2. **Before a relationship group** to indicate information about the relationship group that follows, and
3. **Before an attribute** to indicate information about the attribute name-value pair that follows.

Information slots may include either a cardinality constraint or a slot name (or both). In the following sections, we describe how each of these may be used in an information slot.

## Cardinality

One of the important roles of an information slot is to specify the cardinality of the expression part that follows. A cardinality constraint states the minimum and maximum number of times that the focus concept, relationship group or attribute name-value pair that follows may be repeated in an expression that is generated from the given template.

For example, the expression template below allows between one and three concepts to be used to populate the *finding* slot, and exactly one \_[ | Finding site|](http://snomed.info/id/363698007) \_ name-value pair.

{% @snomed-syntax-highlighter/snomed-syntax-highlighter lines="4" content="\[\[1..3]] \[\[+id (< 404684003 |Clinical finding| :
\[0..0] 363698007 |Finding site| = \* ) @finding]]:
\[\[1..1]] 363698007 |Finding site| =
\[\[+id (<< 442083009 |Anatomical or acquired body structure| ) @site ]]" %}

Based on the cardinality specified in the information slots, the *finding* slot could be replaced by the two concepts [| Infectious disease|](http://snomed.info/id/40733004) and [| Congenital disease|](http://snomed.info/id/66091009) and the *site* slot could be replaced by the concept [| Lung structure|](http://snomed.info/id/39607008) to generate the following expression:

{% @snomed-syntax-highlighter/snomed-syntax-highlighter lines="2" content="40733004 |Infectious disease| + 66091009 |Congenital disease|:
363698007 |Finding site| = 39607008 |Lung structure|" %}

Please note that when two or more concepts are used to replace a focus concept slot in an expression template, a plus sign ( + ) must be added between them to ensure the resulting expression is syntactically valid.

### Default Cardinality

When a cardinality constraint is not provided in an information slot preceding a focus concept, relationship group or attribute name-value pair, the default cardinality that is assumed is 1..\*. This means that by default focus concepts, relationship groups and attribute name-value pairs must appear at least once in the resulting expression, but may also be repeated many times. The SNOMED CT concept model, if enforced, may also impose some additional cardinality constraints on the number of times an attribute may be repeated. However, these additional concept model rules are not directly implied by the expression template itself.

As an example, the following expression template allows one or more procedures to be collectively refined by one or more relationship groups, each containing one or more values for [| Method|](http://snomed.info/id/260686004) and [| Procedure site - Direct|](http://snomed.info/id/405813007) .

{% @snomed-syntax-highlighter/snomed-syntax-highlighter lines="4" content="\[\[+id (<< 71388002 |Procedure| )]]: { 260686004 |Method| = \[\[+id (<< 129264002 |Action (qualifier value)| )]], 405813007 |Procedure site - Direct| =
\[\[+id (<< 442083009 |Anatomical or acquired body structure (body structure)| )]] }" %}

The above expression template is therefore equivalent to the following template, in which the cardinality of 1..\* is explicitly stated on the focus concept, the relationship group, and each attribute name-value pair.

{% @snomed-syntax-highlighter/snomed-syntax-highlighter lines="5" content="\[\[1..]] \[\[+id (<< 71388002 |Procedure| )]]: \[\[1..]] { \[\[1..]] 260686004 |Method| = \[\[+id (<< 129264002 |Action (qualifier value)| )]], \[\[1..]] 405813007 |Procedure site - Direct| = \[\[+id (<< 442083009 |Anatomical or acquired body structure (body structure)| )]] }" processed="true" %}

The replacement slots in this expression template could, for example, be replaced to generate the following expression:

{% @snomed-syntax-highlighter/snomed-syntax-highlighter lines="8" content="76193006 |Routinely scheduled operation| + 387713003 |Surgical procedure| : { 260686004 |Method| = 281615006 |Exploration| , 260686004 |Method| = 312250003 |Magnetic resonance imaging - action| , 405813007 |Procedure site - Direct| = 28273000 |Bile duct structure| }, { 260686004 |Method| = 129304002 |Excision| , 405813007 |Procedure site - Direct| = 28231008 |Gallbladder structure| }" processed="true" %}

Please note that if the international SNOMED CT concept model was enforced, the above expression would not be valid due to the [260686004 | Method|](http://snomed.info/id/260686004) appearing twice in the one relationship group.

## Slot Name

Information slots can also be given a slot name, to allow the expression part that follows the slot (i.e. focus concept, relationship group, or attribute name-value pair) to be referenced. The most common use of information slot names is to support the process of populating the template (e.g. as part of a programmatic value replacement process).

For example, the following expression template uses the name *mpGroup* to name the relationship group that contains both a [| Method|](http://snomed.info/id/260686004) and a [| Procedure site - Direct|](http://snomed.info/id/405813007)

{% @snomed-syntax-highlighter/snomed-syntax-highlighter lines="5" content="71388002 |Procedure| :
\[\[1..1 @mpGroup]] { 260686004 |Method| = 312251004 |Computed tomography imaging action| , 405813007 |Procedure site - Direct| = \[\[+id (<< 442083009 |Anatomical or acquired body structure| ) @site]] }" processed="true" %}

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=SNOMED+Template+Syntax+Specification&#x26;entry.670899847=Information%20Slots" 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-template-syntax-specification/8-expression-template-examples/8.5-information-slots.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.
