In this section, we illustrate how filters can be applied to a set of reference set members to restrict the matching values.
Member filters provide the ability to filter the rows of a reference set, based on the value of specific fields in the reference set. These filters are specified inside double curly braces, and begin with the letter "M".
To apply a member filter to one or more reference sets, the fields of those reference sets are matched against specified criteria. Only reference set members whose field values match the given criteria will be included in the results.
For example, the following expression constraint will match all referencedComponentIds (i.e. SNOMED CT concept id) from the active rows, which map to the ICD-10 code "J45.9" (as a word prefix). When applied to the July 2021 international edition, this will match 59 concepts, including
,
and
.
^ 447562003 |ICD-10 complex map reference set| {{ M mapTarget = "J45.9" }} |
Please note that by default, a word-prefix-any-order match is performed. Therefore the following expression constraint will match on rows that have a mapTarget of "J45.0", "J45.1",..., "J45.8", "J45.9" etc.
^ 447562003 |ICD-10 complex map reference set| {{ M mapTarget = "J45" }} |
Alternatively, a wildcard search can be performed, to achieve similar results. For example, the expression constraint below will match on rows that have a mapTarget starting with "J45" followed by zero or more other characters (e.g. "J45.0", "J45.1",...,"J45.8", "J45.9")
^ 447562003 |ICD-10 complex map reference set| {{ M mapTarget = wild:"J45*" }} |
To achieve an exact string match, a wildcard search (without an '*') can be used. For example, the expression constraint below will match only rows that have a mapTarget of "J45.9".
^ 447562003 |ICD-10 complex map reference set| {{ M mapTarget = wild:"J45.9" }} |
For more information on wildcard and word-prefix-any-order searching, please refer to 6.8 Description Filters.
Multiple field constraints can be applied within a reference set member filter. For example, the following expression constraint will return the referencedComponentId from the rows, which have a mapGroup of "2", a mapPriority of "1" and a mapTarget of "J45.9".
^ 447562003 |ICD-10 complex map reference set| {{ M mapGroup = #2, mapPriority = #1, mapTarget = "J45.9" }} |
Other comparison operators may also be used, when defining field criteria. The available operators depend on the field's datatype, as shown in the table below.
Data type | Comparison Operators | |
---|---|---|
Brief syntax | Long syntax | |
SCTID / Expression | = , != | = , != , NOT = , <> |
Integer / Decimal | = , != , <= , < , >= , > | = , != , NOT = , <> , <= , < , >= , > |
String | = , != | = , != , NOT = , <> |
Boolean | = , != | = , != , NOT = , <> |
Time | = , != , <= , < , >= , > | = , != , NOT = , <> , <= , < , >= , > |
In addition, reference set fields of type 'string' may be filtered using the same word-prefix-any-order and wildcard techniques used by the description term filters. For example, the following expression constraint will match all referencedComponentId from the active rows that have a mapGroup not equal to 2, a mapPriority less than 2, and a mapTarget that starts with the letter "J".
^ 447562003 |ICD-10 complex map reference set| {{ M mapGroup != #2, mapPriority < #2, mapTarget = wild:"J*" }} |
Member filters can also be used in combination with the memberOf function to support the selection of other fields of a reference set (see 6.1 Simple Expression Constraints). For example, the following expression constraint returns the active SNOMED CT concept that is considered to be the same as the inactive concept
^ [targetComponentId] 900000000000527005 |SAME AS association reference set| {{ M referencedComponentId = 67415000 |Hay asthma| }} |
For more information on the use of reference set field names in ECL, please refer to Appendix E - Reference Set Fields.
For additional ways of specifying queries over the historical association reference sets, please refer to 6.11 History Supplements.
Module filters enable an expression constraint to match on only those rows of a reference set that belong to a specified module. Module filters use the keyword "moduleId" with a concept reference that is
< 900000000000443000 |Module| |
.
For example, the expression constraint below matches all members of the that belong to an Australian maintained module.
^ 900000000000534007 |Module dependency reference set| {{ M moduleId = << 32570231000036109 |Australian maintained module| }} |
Effective time filters enable an expression constraint to match on only those rows of a reference set with an effectiveTime that matches the specified criteria.
For example, the following expression constraint matches all rows of the which have been updated since 31st July 2021 (inclusive). Note that the referencedComponentId is the only field returned.
^ 816080008 |International Patient Summary| {{ M effectiveTime >= "20210731" }} |
Active filters enable an expression constraint to match on only those members of a reference set with a matching active status. Reference set rows are either active (i.e. active = 1 or active = "true") or inactive (i.e. active = 0 or active = "false"). By default, only active members of a reference set are included in the substrate.
For example, the following expression constraints returns the inactive members of the .
^ 816080008 |International Patient Summary| {{ M active = 0 }} |