SNOMED Documentation Search


Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This section provides a brief description of each rule listed above in the normative specification.

templateSlot =  templateReplacementSlot / templateInformationSlot

 

A

templateSlot

template slot is part of a template that is either replaced with a value (i.e. a templateRelacementSlot), or removed after the information it contains is interpreted (i.e. a templateInformationSlot).

templateReplacementSlot = conceptReplacementSlot / expressionReplacementSlot / tokenReplacementSlot / concreteValueReplacementSlot
  A
templateReplacementSlot
template replacement slot is a placeholder whose value can be completed at a subsequent time. A
templateReplacementSlot
template replacement slot may be either a
conceptReplacementSlot
concept replacement slot, an
expressionReplacementSlot
expression replacement slot, a
tokenReplacementSlot
token replacement slot or a
concreteValueReplacementSlot
concrete value replacement slot.
conceptReplacementSlot
conceptReplacementSlot = 
=
"[["
ws 
ws  "+" ws 
"id" ws [ "(" ws expressionConstraint ws ")" ws] [
conceptReplacement [slotName ws] "]]"
  A conceptReplacementSlot

A concept replacement slot starts and ends with double square brackets (i.e. "[[ ... ]]"). The first non-whitespace character inside the brackets must always be a plus sign (i.e. "+"), followed by the
text "id". A conceptReplacementSlot may then optionally include an expressionConstraint (in round brackets) to restrict the valid values that may replace the slot, followed by an option slotName.
concept replacement rule and an optional slot name.
expressionReplacementSlot = 
expressionReplacementSlot =
"[["
ws 
ws  "+" ws 
["scg" ws] [ "(" ws expressionConstraint ws ")" ws] [
expressionReplacement [slotName ws] "]]"
  An expressionReplacementSlot

An expression replacement slot starts and ends with double square brackets (i.e. "[[ ... ]]"). The first non-whitespace character inside the brackets must always be a plus sign (i.e. "+"), followed
optionally
by the
text "scg". Note that "scg" is the default replacement slot type. An expressionReplacementSlot may then optionally include an expressionConstraint (in round brackets) to restrict the valid values that may replace the slot, followed by an option slotName
expression replacement rule and an optional slot name.
tokenReplacementSlot = "[["
ws 
ws  "+" ws 
"tok" ws [ "(" ws slotTokenSet ws ")" ws] [
tokenReplacement [slotName ws] "]]"

A
tokenReplacementSlot
token replacement slot starts and ends with double square brackets (i.e. "[[ ... ]]"). The first non-whitespace character inside the brackets must always be a plus sign (i.e. "+"), followed by the
text "tok". A tokenReplacementSlot may then optionally include a slotTokenSet (in round brackets) to restrict the valid values that may replace the slot, followed by an option slotName.
token replacement rule and an optional slot name.
concreteValueReplacementSlot =
concreteValueReplacementSlot = stringReplacementSlot / integerReplacementSlot / decimalReplacementSlotA concreteValueReplacementSlot may either be a stringReplacementSlot, an integerReplacementSlot, or a decimalReplacementSlot.stringReplacementSlot =
 "[["
ws 
ws  "+
" ws "str
" ws 
[ "(" ws slotStringSet ws ")" ws]
concreteValueReplacement [slotName ws] "]]"
 

A
stringReplacementSlot 
concrete value replacement slot starts and ends with double square brackets (i.e. "[[ ... ]]"). The first non-whitespace character inside the brackets must always be a plus sign (i.e. "+"), followed by the
text "str". A stringReplacementSlot may then optionally include a slotStringSet
concrete value replacement rule and an optional slot name.
conceptReplacement = "id" ws [ "(" ws slotExpressionConstraint ws ")" ws]
  A concept replacement starts with the text "id", and then optionally includes an expression constraint (in round brackets)
to restrict
that restricts the valid values that may replace the slot
, followed by an option slotName
.
integerReplacementSlot
expressionReplacement ["
[[" ws "+" ws "int
scg" ws] ["(" ws slotExpressionConstraint ws ")" ws]
  An expression replacement starts (optionally) with the text "scg", and then optionally includes an expression constraint (in round brackets) to restrict the valid values that may replace the slot. Note that "scg" is the default type of replacement slot.
tokenReplacement = "tok" ws [ "(" ws
slotIntegerSet
slotTokenSet ws ")" ws]
[slotName ws] "]]"An integerReplacementSlot starts and ends with double square brackets (i.e. "[[..]]"). The first non-whitespace character inside the brackets must always be a plus sign (i.e. "+"), followed by the text "int". An integerReplacementSlot may then optionally include a slotIntegerSet

A token replacement starts with the text "tok", and then optionally includes a token set (in round brackets) to restrict the valid values that may replace the slot.
concreteValueReplacement = stringReplacement / integerReplacement / decimalReplacement / booleanReplacement

A concrete value replacement may either be a string replacement, an integer replacement, a decimal replacement, or a boolean replacement.
stringReplacement = "str" ws [ "(" ws slotStringSet ws ")" ws]
 A string replacement starts with the text "str", and then optionally includes a string set (in round brackets) to restrict the valid values that may replace the slot.
integerReplacement = "int" ws [ "(" ws slotIntegerSet ws ")" ws]

An integer replacement starts with the text "int", and then optionally includes a integer set (in round brackets) to restrict the valid values that may replace the slot
, followed by an option slotName
.
decimalReplacementSlot
decimalReplacement =
 "[[" ws 
"
+" ws "
dec" ws [ "(" ws slotDecimalSet ws ")"
ws] [slotName
ws
] "]
]
"

A
decimalReplacementSlot starts and ends with double square brackets (i.e. "
decimal replacement starts with the text "dec", and then optionally includes a decimal set (in round brackets) to restrict the valid values that may replace the slot.
booleanReplacement = "bool" ws [ "(" ws slotBooleanSet ws ")" ws]

A boolean replacement starts with the text "bool", and then optionally includes a boolean set
[[..]]"). The first non-whitespace character inside the brackets must always be a plus sign (i.e. "+"), followed by the text "dec". A decimalReplacementSlot may then optionally include a slotDecimalSet
(in round brackets) to
restrict
list the valid values that may replace the slot
, followed by an option slotName
.
slotTokenSet = slotToken *(mws slotToken)

A slotTokenSet consists of one or more slotTokens separated by mandatory white space (i.e. mws).
slotStringSet =
slotString
slotStringValue *(mws
slotString
slotStringValue)
 
 a
A slotStringSet consists of one or more
slotStrings
slotStringValues separated by mandatory white space (i.e. mws).
slotStringValue = QM stringValue QM

A slotStringValue is a stringValue surrounded with double quotation marks.
slotIntegerSet = (
"#" integerValue
slotIntegerValue / slotIntegerRange) *(mws (
"#" integerValue
slotIntegerValue / slotIntegerRange))
  A slotIntegerSet consists of one or more
slotIntegers
slotIntegerValues separated by mandatory white space (i.e. mws).
slotDecimalSet = (
"#" decimalValue
slotDecimalValue / slotDecimalRange) *(mws (
"#" decimalValue
slotDecimalValue / slotDecimalRange))

A slotDecimalSet consists of one or more slotDecimals separated by mandatory white space (i.e. mws).
slotBooleanSet = slotBooleanValue *(mws slotBooleanValue)

A slotBooleanSet consists of one or more slotBooleanValues separated by mandatory white space (i.e. mws).
slotBooleanValue = booleanValue

A slotBooleanValue is simply a boolean value (i.e. true or false).
slotIntegerRange = ( slotIntegerMinimum to [ slotIntegerMaximum ] ) / ( to slotIntegerMaximum )

A slotIntegerRange includes either a slotIntegerMinimum, a slotIntegerMaximum, or both. The slotIntegerMinimum and slotIntegerMaximum are separated by a 'to' token.
slotIntegerMinimum = [ exclusiveMinimum ]
"#" integerValue
slotIntegerValue

A slotIntegerMinimum
includes
consists of a minimum
integerValue preceded by a "#"
slotIntegerValue. By default the minimum is inclusive (i.e. the minimum value is a valid value in the range). However, the minimum value may be declared to be exclusive (i.e. not a valid value in the range) by preceding it with the exclusiveMinimum symbol (i.e. ">").
slotIntegerMaximum = [ exclusiveMaximum ]
"#" integerValue
slotIntegerValue

A slotIntegerMaximum
includes
consists of a maximum
integerValue preceded by a "#"
slotIntegerValue. By default the maximum is inclusive (i.e. the maximum value is a valid value in the range). However, the maximum value may be declared to be exclusive (i.e. not a valid value in the range) by preceding it with the exclusiveMaximum symbol (i.e. "<").
slotDecimalRange 
slotIntegerValue = "#" ["-"/"+"] integerValue

A slotIntegerValue consists of a hash symbol followed by an integer value, with an optional "+" or "-" just before the value.

slotDecimalRange = ( slotDecimalMinimum to [ slotDecimalMaximum ] ) / ( to slotDecimalMaximum )

A slotDecimalRange includes either a slotDecimalMinimum, a slotDecimalMaximum, or both. The slotDecimalMinimum and slotDecimalMaximum are separated by a 'to' token.
slotDecimalMinimum = [ exclusiveMinimum ]
"#" DecimalValue
slotDecimalValue

A slotDecimalMinimum
includes
consists of a minimum
decimalValue preceded by a "#"
slotDecimalValue. By default the minimum is inclusive (i.e. the minimum value is a valid value in the range). However, the minimum value may be declared to be exclusive (i.e. not a valid value in the range) by preceding it with the exclusiveMinimum symbol (i.e. ">").
slotDecimalMaximum = [ exclusiveMaximum ]
"#" DecimalValue
slotDecimalValue

A slotDecimalMaximum
includes
consists of a maximum
decimalValue preceded by a "#"
slotDecimalValue. By default the maximum is inclusive (i.e. the maximum value is a valid value in the range). However, the maximum value may be declared to be exclusive (i.e. not a valid value in the range) by preceding it with the exclusiveMaximum symbol (i.e. "<").
slotDecimalValue = "#" ["-"/"+"] decimalValue

A slotDecimalValue consists of a hash symbol followed by a decimal value, with an optional "+" or "-" just before the value.
exclusiveMinimum = ">"

The exclusiveMinimum symbol is ">". When used before the minimum value, it declares that this value is not a valid part of the range.
exclusiveMaximum = "<"

The exclusiveMaximum symbol is "<". When used before the maximum value, it declares that this value is not a valid part of the range.
slotName = "@" (slotStringValue / nonQuoteStringValue
/ slotString
)

A slotName starts with an at symbol (i.e. "@"), followed by either a quoted or unquoted string.
slotToken 
slotToken = definitionStatus / memberOf / constraintOperator / conjunction / disjunction / exclusion / reverseFlag / expressionComparisonOperator / numericComparisonOperator / stringComparisonOperator / booleanComparisonOperator

A slotToken is any token from SNOMED CT Compositional Grammar or the SNOMED CT Expression Constraint Language. This includes the definitionStatus, memberOf, constraintOperator, conjunction, disjunction, exclusion, reverseFlag, expressionComparisonOperator, numericComparisonOperator, stringComparisonOperator and
stringComparisonOperator
booleanComparisonOperator tokens.
slotString = QM stringValue QMA slotString is a string value enclosed in quotation marks.
nonQuoteStringValue = *(%x21 / %x23-26 / %x28-3F / %x41-5A / %x5C / %x5E-7E)   ; string with no ws, quotes, at or square brackets

A nonQuoteStringValue includes any character that is not whitespace, quotes, or the @ symbol.
templateInformationSlot 
templateInformationSlot "[[" ws slotInformation ws "]]"

A templateInformationSlot starts and ends with double square brackets (i.e. "[[ ... ]]"), and contains slotInformation.
slotInformation = [cardinality ws] [slotName ws]

A slotInformation consists of either a cardinality, a slotName or both.