2020-03-11 - SLPG Meeting

2020-03-11 - SLPG Meeting

Date & Time

20:00 UTC Wednesday 11th March 2020

Location

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

Goals

  • To finalize URI updates for publication

  • To finalize requirements for term searching in ECL

Attendees 

  • Chair: @Former user (Deleted)

  • Project Group: @michael lawley@Daniel Karlsson@Peter Jordan (Unlicensed)@Rob Hausam@Ed Cheetham

Apologies

Agenda and Meeting Notes

Description

Owner

Notes

Description

Owner

Notes

Welcome and agenda

@Former user (Deleted)

SNOMED International has announced the cancellation of the face to face April 2020 business meetings. Therefore, the SNOMED Languages meeting on Sunday 5th April is also cancelled.

Concrete values

@Former user (Deleted)

ON HOLD: SCG, ECL, STS, ETL - Ready for publication, but on hold until after MAG meeting in April confirming requirement for Boolean datatype.

URIs

@Former user (Deleted)

DISCUSSION: Do we have any use cases for URIs for language syntaxes and instances?

TO BE DECIDED: Which new URI format(s) will be included in the revisions to the URI standard?

Draft URI standard for review - URI Standard

  • 2.6 URIs for Language Syntaxes - Not for publication

  • 2.7 URIs for Language Instances - Not for publication

  • 2.8 URIs for Modelling Resources * - To publish

  • 3.1 Resolving SNOMED CT URIs * - To publish (with revised wording)

Expression Constraint Language

@Former user (Deleted)

FUTURE PLANS

  • Feature Request - Child or self (<<!) has been requested by an implementation in U.S.

    • Use case: Connect our medical content (medical articles and doctor specialties/treatments) on a hospital's website. They do not need high granularity for the approx 10,000 concepts needed to choose to tag an article or use on a doctor's profile page. Most often the parent concept, or one of its direct children is all that is needed. They are creating a refset of only the concepts we may need for tagging content. The descendants operators provided too many results. In most cases, the parent and its direct children will work well for their needs. While the "<! X OR X" works, they would prefer to eliminate keystrokes or ECL characters.

    • >>! for ancestor or self (>>!)

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

{{ term  =  [ termSearchType : ] "String", language = <langCode> }}

  • Example - {{ term = "heart att", language = es }}

  • What other optional parameters should be included? - e.g. 'type', 'dialect', 'acceptability'

    • typeId = 900000000000013009 ; type = <syn | fsn | textdef>

    • dialectId = 900000000000508004 |GB English| ; dialect = <en-GB | en-AU | nz-Patient | en-Patient | de-CardioSpecialist>

      • dialectId = 900000000000508004 + 900000000000509007 ; dialect = en-GB + en-US

      • Dialect_Alias refset : alias + languageRefset-conceptId - e.g. "en-GB", 900000000000508004

    • acceptabilityId = 900000000000549004 ; acceptability = <acceptable | preferred >

  • Use case - Searching on PT

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)

Returning Attributes

@michael lawley

Proposal (by Michael) for discussion

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

Reverse Member Of

@michael lawley

Proposal for discussion

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

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

Query Language
- Summary from previous meetings







@Former user (Deleted)

FUTURE WORK

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 11th March 2020 at 20:00 UTC.

  File Modified
No files shared here yet.

Copyright © 2026, SNOMED International