In this section, we illustrate how concept filters can be applied to expression constraints to further restrict the matching concepts.
Concept filter constraints provide the ability to limit the set of concepts that satisfy a given expression constraint, based on the properties of each concept. Only concepts with properties that match the criteria specified in the concept filter constraint will be included in the set of matching concepts. Concepts can be filtered based on their definition status, module, effectiveTime, and active status. In the following sections we explain each of these concept filter criteria.
Definition Status Filter
Definition status filters enable an expression constraint to match on only those concepts with a matching definition status. Definition status filters may either use the keyword 'definitionStatus' with the values "defined" or "primitive", or may use the keyword "definitionStatusId" with a concept value that is < 900000000000444006 |Definition status| .
The following table lists the valid definitionStatus tokens and their equivalent definitionStatusId concept reference alternatives. If additional definition statuses are required, these must be specified in a filter using the 'definitionStatusId' keyword with the corresponding concept reference.
definitionStatusId (concept reference)
|primitive||900000000000074008 |Not sufficiently defined by necessary conditions definition status||
|defined||900000000000073002 |Sufficiently defined by necessary conditions definition status||
For example, the expression constraints below match all the primitive subtypes of | Heart disease| .
Module filters enable an expression constraint to match on only those concepts that belong to a specified module1 . Module filters use the keyword "moduleId" with a concept reference that is < 900000000000443000 |Module| .
For example, the expression constraint below matches all subtypes of 195967001 | Asthma| that belong to the US National Library of Medicine maintained module.
Effective time filters enable an expression constraint to match on only those concepts with an effectiveTime that matches the specified criteria. Effective time filters may use any of the date comparison operators shown below:
|<||Before the given date|
|<=||Before or on the given date|
|>||After the given date|
|>=||After or on the given date|
Please note that the value of an effective time filter (if present) must be a 8 digit date, formatted according to ISO 8601's basic calendar date format (i.e. YYYYMMDD). If the effectiveTime of the concept in the substrate includes a time and/or time zone designator, these should be ignored when performing the comparison.
For example, the following expression constraint matches all subtypes of 125605004 | Fracture of bone| with an effective time of 31st January 2021.
Active filters enable an expression constraint to match on only those concepts with a matching active status. Concepts are either active (i.e. active = 1 or active = "true") or inactive (i.e. active = 0 or active = "false"). By default, both active and inactive concepts are included in the substrate. This allows inactive members of a reference set to be retrieved (e.g. for historical reference sets, in which the referenced component is intended to be inactive). However, because only active relationships are included in the default substrate, as soon as a refinement or hierarchical operator is used, only active concepts are matched.
For example, the following expression constraints returns only active concepts in the International Patient Summary reference set.
|1||Please note that module filters are not intended to replace the use of simple reference sets to organize content of a particular type. Module filters are instead intended to be used for purposes related to the management of extensions or editions.|