Page tree

Date & Time

20:00 UTC Wednesday 14th February 2018

Teleconference Details

To join the meeting please go to

Further information can be found at SLPG meeting information


  • Progress SNOMED Query language


Agenda and Meeting Notes


Welcome and apologies

Query Language

Examples of using LET ... IN ...

    • LET X = (<< 1234 : 5678 = << 6547) IN X MINUS >! X

      • Find leaf nodes of X

Examples of using ... FROM ...

    • << 64572001 |Disease| {{ term = "*heart*" }} FROM version = Y

    • << 64572001 |Disease| {{ synonym = "*heart*" }} FROM version = Y

    • << 64572001 |Disease| {{ FSN = "*heart*" }} FROM version = Y

    • << 64572001 |Disease| {{ FSN = "*heart*" }} FROM version = Y, language = W
    • << 64572001 |Disease| {{ preferredTerm = “*heart*”}} FROM  version = X, language = Y

    • << 64572001 |Disease| {{ acceptableTerm = “*heart*”}} FROM  version = X, language = Y

    • (* FROM version = X, language = Z) MINUS (* {{ term = "*heart*" }} FROM version = Y, language = W)

Q: What attributes are used by this set of concepts?

Using Language Reference Sets

    • What options do we provide for constraining terms, preferred terms, fully specified names, acceptable terms and/or selecting language refsets?
      • Next meeting - need to clarify which keywords we need for lexical searching, and exactly what their meaning is
Confirm next meeting date/time

There will be NO meeting in 2 weeks, due to travel commitments

Next meeting to be held at 20:00 UTC on Wednesday 14th March 2018

No files shared here yet.

  • No labels


  1. Apologies Linda, all

    I shall not be able to attend this call.

    Kind regards


    1. Thanks for letting us know Ed! Enjoy your evening!

      Kind regards,

  2. The following shows how I've prototyped extending the ECL syntax to support simple filters.

    Original ECL grammar rule

    conjunctionExpressionConstraint = subExpressionConstraint 1*(ws conjunction ws subExpressionConstraint)

    Updated and additional grammar rules:

    conjunctionExpressionConstraint = subExpressionConstraint 1*(ws conjunction ws (subExpressionConstraint / filterExpression))

    filterExpression = "{{" ws filter 1*(ws "," ws filter) ws "}}")

    filter = filter_name filter_op filter_val


    For filter_name, I've implemented "term", "moduleId", "effectiveTime", and both "definitionStatus" and "definitionStatusId".

    1. Thanks Michael! Very useful.

      Have you used "C" and "D" prefixes for the filter names, or just assumed that moduleId and effectiveTime refer to the concept?

      I suggest that we should focus on language refsets next, in terms of defining searches over preferred and acceptable terms in a given language/dialect.

      Kind regards,

      1. At the moment the only things my filters act on are concepts, so no need for "C" etc. and "term" for us means "all known label for the concept".  This includes things like the conceptId itself as well as descriptionIds.