Page tree

Versions Compared

Key

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

Date & Time

20:00 UTC Wednesday 14th March 2018

Teleconference Details

To join the meeting please go to https://snomed.zoom.us/j/471420169

Further information can be found at SLPG meeting information

Goals

  • Progress SNOMED Query language

Agenda and Meeting Notes

Advanced Tables - Table Plus
border2
rowStylesbackground-color:#ccccff;font-weight:bold;,background-color:"#eeeeff";font-weight:normal;,background-color:#eeffff;font-weight:normal;
autoNumberSorttrue
autoNumbertrue
enableSortingfalse


Description
Owner
Notes

Welcome and apologies


Recap from last week

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)

    • X MINUS Y WHERE X = (* version = X, language = Z), Y = (* {{ term = "*heart*" }} version = Y, language = W)
    • Allow nested where, version, language
    • Scope of variables - inner query


Examples of using SET WHERE to set the value of variable:

    • X MINUS >! X SET WHERE X = (<< 1234 : 5678 = << 6547)

      Find leaf nodes of X

    • X MINUS >! X FROM version = Y SET WHERE X = (<< 1234 : 5678 = << 6547)

Possible alternatives to "SET" include "WHERE", "SUCH THAT". For example:

    • X MINUS >!
  • X
    • Y FROM version = Y WHERE X = (<< 1234 : 5678 = << 6547), Y = (<< 1456)
    • X MINUS >! X
  • FROM version = Y
    • WHERE X = (<< 1234 : 5678 = << 6547) FROM version Y, language X W
    • X MINUS >! X
  • SUCH THAT
    • WHERE X = (<< 1234 : 5678 = << 6547)VERSION Y LANGUAGE X, W
    • X
  • MINUS
    • minus >! X
  • FROM version = Y
    • where X = ( < M where M = (< 1234))) version Y language X, W
      • Allow nested variable definitions, but recommend that people don't due to readability
      • Scope of variables is the inner query
      • No recursion e.g X where X = 1234 MINUS X
        • ie can't use a variable in its own definition
        • ie X is only known on the left of the corresponding where, and not on the right of the where
    • (X version v201703) minus (X version v201703) where X = ( < 136467 ), v201708 = http://snomed.info/sct/1245, v201703 = http://snomed.info/sct/16444
    • (X language enus) minus (X language engb) where X = ( < 136467 {{ term = "*heart*" }} ),
      enus = 13535 |en-us Language Refset|
      , engb = 123435 | en-gb Language RefSset|
  • SUCH THAT X = (<< 1234 : 5678 = << 6547)
Composing language reference sets

How do we support language preferences, which are defined over multiple language reference sets? For example:

  • Assume: No concept has descriptions in 2 listed language refsets ... But if they do, do they override or are they additive?

  • Tentative decision: Assume that they're additive, but if there is overlap (multiple PTs or different statuses for the same description for the same concept):

    • Order is important for resolving preferred terms. Acceptable terms are additive
    • See, for example “Paediatric neurodisability outpatient diagnosis language reference set”

      999001891000000105

  • << 64572001 |Disease| {{ preferredTerm = “*heart*” }}

  • FROM version = http://snomed.info/sct/999000021000000109, language = (999001881000000108|Gastro GB clinical extension LRS|, 900000000000508004 |GB English|)

  • << 64572001 |Disease| {{ term = “*heart*” }}
  • FROM version = http://snomed.info/sct/999000021000000109, language = (Gastro, GBenglish)
    SET Gastro = 999001881000000108|Gastro LRS|, GBenglish = 900000000000508004 |GB English|)

  • What are the rules of composition? For example:
    • Additive approach
      The preferred term and preferred FSN is based on the first language refset in the list to define this for the given concept.
      The acceptable terms is the union of acceptable and preferred terms in all mentioned language refsets
    • Replacement approach
      The preferred term and preferred FSN is based on the first language refset in the list to define this for the given concept.
      The acceptable terms are the ones defined in the first language refset in the list to include a description that refers to the given concept
Filters for Lexical Searching


What filter keywords will we introduce for Term-based searching, and what are their exact meanings?

  • D.term
    • D.term = "*heart*"
    • D.term = wild:"*heart*"
    • D.term = regex:".*heart.*"
    • D.term = match:"hear att"
    • D.term = (sv) wild: "*heart*"
  • D.languageCode
    • D.languageCode = "en"
    • D.languageCode = "es"
  • D.caseSignificanceId
    • D.caseSignificanceId = 900000000000448009 |entire term case insensitive|
    • D.caseSignificanceId = 900000000000017005 |entire term case sensitive|
    • D.caseSignificanceId = 900000000000020002 |only initial character case insensitive|
  • D.caseSignificance
    • D.caseSignificance = "insensitive"
    • D.caseSignificance = "sensitive"
    • D.caseSignificance = "initialCharInsensitive"
  • D.typeId
    • D.typeId = 900000000000003001 |fully specified name|
    • D.typeId = 900000000000013009 |synonym|
    • D.typeId = 900000000000550004 |definition|
  • D.type
    • D.type = "FSN"
    • D.type = "synonym"
    • D.type = "definition"
  • D.acceptabilityId
    • D.acceptabilityId = 900000000000549004 |acceptable|
    • D.acceptabilityId = 900000000000548007 |preferred|
  • D.acceptability
    • D.acceptability = "acceptable"
    • D.acceptability = "preferred"
    • ? D.acceptability = "unacceptable"
  • FSN
    • FSN = "*heart*"
  • synonym
    • synonym = "*heart*"
  • definition
    • definition "*heart*"
  • preferredTerm
    • preferredTerm = "*heart*"
  • preferredFSN
    • preferredTerm = "*heart*"
  • acceptableTerm
    • preferredTerm = "*heart*"
  • acceptableOrPreferredTerm
    • preferredTerm = "*heart*"
  • acceptableNotPreferredTerm
    • preferredTerm = "*heart*"
Confirm next meeting date/time

The next SLPG meeting will be held in 2 weeks at 20:00 UTC on Wednesday 28th March 2018.

Due to the April SNOMED business meeting in London, the meeting after that will be held at 20:00 UTC on Wednesday 25th April 2018.


Attachments