Date & Time

20:00 UTC Wednesday 25th April 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
  • DL Group: Necessary Long Normal Form + Canonical Normal Form
  • Future weeks: Transitive relationships in ECL
  • Future weeks: Ability to execute maps from within ECL
  • Future weeks: URI standard

Attendees 

Apologies


Agenda and Meeting Notes


Description
Owner
Notes

Welcome and apologies


Query Language
- Recap from previous meetings

Examples: version and language

Notes

    • Allow nested where, version, language
    • Scope of variables is inner query


Examples: where

Notes

      • 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
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 = "fullySpecifiedName"
    • D.type = "synonym"
    • D.type = "textDefinition"
  • D.acceptabilityId
    • D.acceptabilityId = 900000000000549004 |acceptable|
    • D.acceptabilityId = 900000000000548007 |preferred|
  • D.acceptability
    • D.acceptability = "acceptable"
    • D.acceptability = "preferred"
    • ? D.acceptability = "unacceptable"

Additional Syntactic Sugar

  • FSN ?
    • FSN = "*heart"
    • D.term = "*heart", D.type = "FSN", (D.acceptability = "acceptable" OR D.acceptability = "preferred")
    • D.term = "*heart", D.typeId = 900000000000003001 |fully specified name|, (D.acceptabilityId = 900000000000549004 |acceptable| OR D.acceptabilityId = 900000000000548007 |preferred|)
  • synonym ?
    • synonym = "*heart"
    • D.term = "*heart", D.type = "synonym", (D.acceptability = "acceptable" OR D.acceptability = "preferred")
    • D.term = "*heart", D.typeId = 900000000000013009 |synonym|, (D.acceptabilityId = 900000000000549004 |acceptable| OR D.acceptabilityId = 900000000000548007 |preferred|)
  • TextDefinition ?
    • textDefinition = "*heart"
    • D.term = "*heart", D.type = "definition", (D.acceptability = "acceptable" OR D.acceptability = "preferred")
    • D.term = "*heart", D.typeId = 900000000000550004 |definition|, (D.acceptabilityId = 900000000000549004 |acceptable| OR D.acceptabilityId = 900000000000548007 |preferred|)
  • preferredSynonym *
    • preferredSynonym = "*heart"
    • D.term = "*heart", D.type = "synonym", D.acceptability = "preferred"
    • D.term = "*heart", D.typeId = 900000000000013009 |synonym|, D.acceptabilityId = 900000000000548007 |preferred|
  • preferredFSN
    • preferredFSN = "*heart"
    • D.term = "*heart", D.type = "FSN", D.acceptability = "preferred"
    • D.term = "*heart", D.typeId = 900000000000003001 |fully specified name|, D.acceptabilityId = 900000000000548007 |preferred|
  • preferredTextDefinition
    • preferredTextDefinition = "*heart"
    • D.term = "*heart", D.type = "TextDefinition", D.acceptability = "preferred"
    • D.term = "*heart", D.typeId = 900000000000550004 |definition|, D.acceptabilityId = 900000000000548007 |preferred|
  • acceptableSynonym *
    • acceptableSynonym = "*heart"
    • D.term = "*heart", D.type = "synonym", D.acceptability = "acceptable"
    • D.term = "*heart", D.typeId = 900000000000013009 |synonym|, D.acceptabilityId = 900000000000548007 |preferred|
  • acceptableFSN *
    • acceptableFSN = "*heart*"
    • D.term = "*heart", D.type = "FSN", D.acceptability = "acceptable"
    • D.term = "*heart", D.typeId = 900000000000003001 |fully specified name|, D.acceptabilityId = 900000000000549004 |acceptable|
  • acceptableTextDefinition
    • acceptableTextDefinition = "*heart*"
    • D.term = "*heart", D.type = "TextDefinition", D.acceptability = "acceptable"
    • D.term = "*heart", D.typeId = 900000000000550004 |definition|, D.acceptabilityId = 900000000000549004 |acceptable|
Query Language - Combining language reference sets

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

  • Suggestion: Use '+' to indicate additive (except for PT), and ',' to indicate priority order (with concept-level override). For example:

    • LANGUAGE 999001891000000105 |Paediatric neurodisability outpatient diagnosis language reference set| , 900000000000508004 |GB English|

      • Priority order: This means that if a concept has descriptions in the Paediatric LRS, then this LRS is used. But if a concept has no descriptions in the Paediatric LRS, then GB English is used

    • LANGUAGE 999001881000000108|GB clinical extension LRS| + 900000000000508004 |GB English|
      • Additive: This means that if a concept has a PT in both LRSs, then the PTs in the Paediatric LRS take priority, and the PT in the GB English LRS becomes acceptable. Other terms are acceptable if they are acceptable in either LRS.
    • LANGUAGE 999001891000000105 |Paediatric neurodisability outpatient diagnosis language reference set| ,
      999001881000000108|GB clinical extension LRS| + 900000000000508004 |GB English|
      • Priority order and Additive: This means that if a concept has a PT in both LRSs, then the PTs in the Paediatric LRS take priority, and the PT in the GB English LRS becomes acceptable. Other terms are acceptable if they are acceptable in either LRS.
Confirm next meeting date/time

The next SLPG meeting will be held in 2 weeks at 20:00 UTC on Wednesday 9th May.