2019-12-18 - SLPG Meeting

2019-12-18 - SLPG Meeting

Date & Time

20:00 UTC Wednesday 18th December 2019

Location

Zoom meeting: https://snomed.zoom.us/j/471420169

Goals

  • To review feedback on updates to

    • URIs

    • Templates

    • ECL

  • To progress

    • Query language (accessing reference sets)

Attendees 

  • Chair: @Former user (Deleted)

  • Project Group: @michael lawley@Rob Hausam@Ed Cheetham

Apologies

  • @Daniel Karlsson@Anne Randorff Højen

Agenda and Meeting Notes

Description

Owner

Notes

Description

Owner

Notes

Welcome and agenda

@Former user (Deleted)

 

Concrete values

@Former user (Deleted)

Boolean added to draft SCG, ECL, STS and ETL specifications

PLEASE REVIEW BEFORE NEXT MEETING!

URIs

@Peter Williams & @Former user (Deleted)

PLEASE REVIEW BEFORE NEXT MEETING!

Draft URI standard for review - URI Standard

  • 2.1 URIs for Editions and Versions (formatting and examples only)

  • 2.2 URIs for Components and Reference Set Members (formatting and examples only)

  • 2.3 Version-Relative Component URIs (formatting and examples only)

  • 2.4 URIs for Modules (formatting and examples only)

  • 2.5 URIs for Properties (formatting and examples only)

  • 2.6 URIs for Language Syntaxes

  • 2.7 URIs for Language Instances

  • 2.8 URIs for Modelling Resources

  • 3.1 Resolving SNOMED CT URIs

Expression Templates

@Peter Williams

Examples:

[[+id]]: [[1..*] @my_group sameValue(morphology)] { |Finding site| = [[ +id (<<123037004 |Body structure (body structure)| MINUS << $site[! SELF ] ) @site ]] , |Associated morphology| = [[ +id @my_morphology ]]}

  • Implementation feedback on draft updates to Expression Template Language syntax

    • Use cases from the Quality Improvement Project:

      • Multiple instances of the same role group, with some attributes the same and others different. Eg same morphology, potentially different finding sites.

Note that QI Project is coming from a radically different use case. Instead of filling template slots, we're looking at existing content and asking "exactly how does this concept fail to comply to this template?"

For discussion:

Is it correct to say either one of the cardinality blocks is redundant? What are the implications of 1..1 on either side? This is less obvious for the self grouped case.

Road Forward for SI

  1. Generate the parser from the ABNF and implement in the Template Service

  2. User Interface to a) allow users to specify template at runtime b) tabular (auto-completion) lookup → STL

  3. Template Service to allow multiple templates to be specified for alignment check (aligns to none-off)

  4. Output must clearly indicate exactly what feature of concept caused misalignment, and what condition was not met.

Additional note: QI project is no longer working in subhierarchies. Every 'set' of concepts is selected via ECL. In fact most reports should now move to this way of working since a subhierarchy is the trivial case. For a given template, we additionally specify the "domain" to which it should be applied via ECL. This is much more specific than using the focus concept which is usually the PPP eg Disease.

FYI @Michael Chu

Description Templates

@Kai Kewley

Expression Constraint Language

@Former user (Deleted)

STILL TO DO:

  • Agreement in Malaysia - ECL will add the following term searching syntax (no regex - just wild card and word prefix any order):

{{ term  =  [ termSearchType : ] "String", languageCode = [langCode] }}

Term Search Type

Potential Examples

Use Cases

Questions

Querying Refset Attributes

@Former user (Deleted)

Proposed syntax to support querying and return of alternative refset attributes (To be included in the SNOMED Query Language)

Reverse Member of

All

What refsets is a given concept (e.g. 421235005 |Structure of femur|) a member of?

  • Possible new notation for this:

    • ^ . 421235005 |Structure of femur|

    • ? X ? 421235005 |Structure of femur| = ^ X

Returning attributes

@michael lawley

Proposal from Michael:

  • Currently ECL expressions can match (return) concepts that are either the source or the target of a relationship triple (target is accessed via the 'reverse' notation or 'dot notation', but not the relationship type (ie attribute name) itself. 

For example, I can write: 

<< 404684003|Clinical finding| : 363698007|Finding site| = <<66019005|Limb structure| 

<< 404684003|Clinical finding| . 363698007|Finding site| 

But I can't get all the attribute names that are used by << 404684003|Clinical finding| 

Query Language
- Summary from previous meetings

 

 

 

@Former user (Deleted)

Examples: version and dialect

Notes

 

 

 

 

Examples: where

Notes

Keywords for Term-based searching:

  • 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"

Additional Syntactic Sugar

  • FSN

    • FSN = "*heart"

      • D.term = "*heart", D.type = "FSN"

      • D.term = "*heart", D.typeId = 900000000000003001 |fully specified name|

    • FSN = "*heart" LANGUAGE X

      • D.term = "*heart", D.type = "FSN", D.acceptability = * LANGUAGE X

      • D.term = "*heart", D.typeId = 900000000000003001 |fully specified name|, acceptabilityId = * LANGUAGE X

  • synonym

    • synonym = "*heart"

      • D.term = "*heart", D.type = "synonym"

      • D.term = "*heart", D.typeId = 900000000000013009 |synonym|

    • synonym = "*heart" LANGUAGE X

      • D.term = "*heart", D.type = "synonym", D.acceptability = * LANGUAGE X

      • D.term = "*heart", D.typeId = 900000000000013009 |synonym|, (D.acceptabilityId = 900000000000549004 |acceptable| OR D.acceptabilityId = 900000000000548007 |preferred|) LANGUAGE X

  • synonymOrFSN

    • synonymOrFSN = "*heart"

      • synonym = "*heart" OR FSN = "*heart"

      • D.term = "*heart", (D.type = "synonym" OR D.type = "fullySpecifiedName")

    • synonymOrFSN = "*heart" LANGUAGE X

      • synonym = "*heart" OR FSN = "*heart" LANGUAGE X

      • D.term = "*heart", (D.type = "synonym" OR D.type = "fullySpecifiedName"), D.acceptability = * LANGUAGE X

  • textDefinition

    • textDefinition = "*heart"

      • D.term = "*heart", D.type = "definition"

      • D.term = "*heart", D.typeId = 900000000000550004 |definition|

    • textDefinition = "*heart" LANGUAGE X

      • D.term = "*heart", D.type = "definition", D.acceptability = * LANGUAGE X

      • D.term = "*heart", D.typeId = 900000000000550004 |definition|, D.acceptabilityId = * LANGUAGE X

  • Unacceptable Terms

    • (D.term = "*heart") MINUS (D.term = "*heart", D.acceptability = * LANGUAGE X)

Language preferences using multiple language reference sets

  • LRSs that use the same Language tend to use 'Addition' - i.e. child LRS only includes additional acceptable terms, but can override the preferred term

    • E.g. Regional LRS that adds local dialect to a National LRS

    • E.g. Specialty-specific LRS

    • E.g. Irish LRS that adds local preferences to the en-GB LRS

      • 99999900 |Irish language reference set| PLUS |GB English reference set|

  • LRSs that define a translation to a different language tend to use 'Replacement' - i.e. child LRS replaces set of acceptable and preferred terms for any associated concept

    • E.g. Danish LRS that does a partial translation of the International Release

      • 999999 |Danish language reference set| ELSE |GB English reference set|

Confirm next meeting date/time

@Former user (Deleted)

Next meeting is scheduled for Wednesday 29th January 2020 at 20:00 UT. Please enjoy your holidays everyone!

  File Modified

Microsoft Excel Spreadsheet RegexCheat.xlsx

2019-Dec-17 by Former user (Deleted)

PNG File image2019-12-18_15-55-11.png

2019-Dec-18 by Ed Cheetham

 

Copyright © 2026, SNOMED International