2020-02-12 - SLPG Meeting

2020-02-12 - SLPG Meeting

 

Date & Time

20:00 UTC Wednesday 12th February 2020

Location

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

Goals

  • To finalize any feedback on updates to SCG, ECL, Templates

  • To discuss SNOMED URI conversations at recent FHIR meetings in Sydney

  • To progress

    • Query language (accessing reference sets)

Attendees 

  • Chair: @Former user (Deleted)

  • Project Group: @Peter Jordan (Unlicensed)@michael lawley@Daniel Karlsson@Rob Hausam@Ed Cheetham@Anne Randorff Højen, Davide Sottara 

Apologies

Agenda and Meeting Notes

Description

Owner

Notes

Description

Owner

Notes

Welcome and agenda

@Former user (Deleted)

Please note that the SLPG will be meeting in London on Sunday 4th April (9am to 12:30pm) - see schedule

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)

Discussions at FHIR Connectathon

  • URIs for Language Syntax

    • Alternatives

      • Include a SNOMED CT concept for each language syntax, and use the standard http://snomed.info/id/<sctid> format to refer to these

      • Use http://snomed.info/syntax/<syntaxAbbrev>/version/<timestamp>

  • URIs for Language Instances

    • Alternatives

      • Extend the http://snomed.info/id/<sctid> format to allow postcoordinated expressions to be represented

      • Use the language instance format - e.g. http://snomed.info/scg/<expression>

        • Enables versioning of syntax

        • Enables other syntax instances (e.g. ECL URIs)

  • URIs for Modelling Resources

    • Global modelling resources will use the http://snomed.info/id/<sctid> format

      • Value sets will use their simple refset id

      • Concept maps will use their map refset id

    • Standard-specific modelling resources will be identified using a format agreed with the relevant standards organisation - i.e.

      • http://snomed.info/<standard>/<standard-specific-format>

      • For the FHIR standard, this will be:

        • http://snomed.info/fhir/{resourceType}/{resourceName} - e.g.:

          • http://snomed.info/fhir/implementationGuide/snomedIG

PREVIOUS UPDATES

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 Constraint Language

@Former user (Deleted)

NEXT STEP FOR ECL:

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

  • Question - Do we want to reconsider including optional parameters for 'type', 'dialect' and 'acceptability'

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

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

Reverse Member of

All

Returning attributes

@michael lawley

 

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 29th January 2020 at 20:00 UT. Please enjoy your holidays everyone!

  File Modified
No files shared here yet.

 

Copyright © 2026, SNOMED International