2017-12-20 - SLPG Meeting

2017-12-20 - SLPG Meeting

Date & Time

20:00 UTC Wednesday 20th December 2017

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

  • Review proposed Query language examples

Attendees 

  • Chair: Former user (Deleted)

  • Project Group: michael lawley, Daniel Karlsson, Andrew Perry (Unlicensed), Anne Randorff Højen, Rob Hausam, Ed Cheetham

Apologies

 

Agenda and Meeting Notes

Description

Owner

Notes

Description

Owner

Notes

Welcome and apologies

Former user (Deleted)

 

Query Language

Former user (Deleted)

  • Review proposed Query Language examples

  • Consider issues and potential resolutions. Questions needing resolution include:



    • Do we need inferred relationship filters?

      • Answer: Tentative Yes

    • If yes, then what are some good use cases?

      • Answer: QA - Find me all the source concepts of a relationship added in an extension module

      • Answer: QA - Find me all the source concepts of a relationship added at a particular effective time



    • How should no brackets be interpreted?

      1. What does this mean? "< 404684003 |Clinical finding| {{ C.definitionStatusId = 900000000000074008 |Primitive|}}"

        • 1a) ( < 404684003 |Clinical finding| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}}

        • 1b) < ( 404684003 |Clinical finding| {{ C.definitionStatusId = 900000000000074008 |Primitive|}} )

        • Answer: 1a

      2. What does this mean? "< 404684003 |Clinical finding| : 363698007 |Finding site| = << 80891009 |Heart structure| {{ C.definitionStatusId = 900000000000074008 |Primitive|}}"

        • 2a) ( < 404684003 |Clinical finding| : 363698007 |Finding site| = << 80891009 |Heart structure| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}}

        • 2b) < 404684003 |Clinical finding| : 363698007 |Finding site| = (( << 80891009 |Heart structure| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}} )

        • 2c) < 404684003 |Clinical finding| : 363698007 |Finding site| = << (( 80891009 |Heart structure| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}} )

        • Answer: 2a



    • If we do support relationship filters, then where should they go and how should they be bracketed?

      1. Directly after the attribute - for example:

        • 1a) < 404684003 |Clinical finding| : 363698007 |Finding site| {{ R.moduleId = 32506021000036107 |AU extension|}} = << 80891009 |Heart structure|

        • or

        • 1b) < 404684003 |Clinical finding| : ( 363698007 |Finding site| {{ R.moduleId = 32506021000036107 |AU extension| }} ) = << 80891009 |Heart structure|

      1. Directly after the refinement (with brackets) - for example:

        • 2a) < 404684003 |Clinical finding| : (( 363698007 |Finding site| = << 80891009 |Heart structure| ) {{ R.moduleId = 32506021000036107 |AU extension|}})

        • or

        • 2b) < 404684003 |Clinical finding| : ( 363698007 |Finding site| = << 80891009 |Heart structure| {{ R.moduleId = 32506021000036107 |AU extension|}} )

      2. Directly after the =/!= , for example:

        • 3a) < 404684003 |Clinical finding| : 363698007 |Finding site| = {{ R.moduleId = 32506021000036107 |AU extension|}} << 80891009 |Heart structure|

      3. Directly after the constraint operator (Interpretation - there exists a relationship in the chain) - for example:

        • 3a) < {{ R.moduleId = 32506021000036107 |AU extension|}} 404684003 |Clinical finding|

      4. After the concept being constrained - for example:

        • 4a) < 404684003 |Clinical finding| {{ R.moduleId = 32506021000036107 |AU extension|}}

        • or

        • 4b) ( < 404684003 |Clinical finding| ) {{ R.moduleId = 32506021000036107 |AU extension|}}

      • Answer(s): ? 2b and 4a (Note: 1b is more consistent with dotted notation)



    • How do we indicate the execution order for relationship filters?

      • Dotted notation - For example "ANY . << 246090004 |Associated finding| . 363698007 |Finding site|"

        1. Only returns those concepts that result from using a |Finding site| relationship in the AU core (Note: return the destinationConcept of these relationships)

          • 1a) ANY . << 246090004 |Associated finding| . 363698007 |Finding site| {{ R.moduleId != 'AU Core' }}

          • or

          • 1b) ANY . << 246090004 |Associated finding| . ( 363698007 |Finding site| {{ R.moduleId != 'AU Core' }} )

          • Answer: ? 1b

        2. Only returns those concepts that result from using an |Associated finding| relationship (or type of |associated finding| relationship) in the AU core (Note: return the destinationConcept of these relationships)

          • 2a) ANY . << 246090004 |Associated finding| {{ R.moduleId != 'AU Core' }}. 363698007 |Finding site| 

          • or

          • 2b) ANY . ( << 246090004 |Associated finding| ) {{ R.moduleId != 'AU Core' }}. 363698007 |Finding site| 

          • or

          • 2c) ANY . ( << 246090004 |Associated finding| {{ R.moduleId != 'AU Core' }} ). 363698007 |Finding site|

          • Answer: ? 2c

      • Cardinality

        1. Exactly one matching relationship in the AU core (but may be other matching relationships in other modules)

          • 1a) < 404684003 |Clinical finding| : [1..1] ( 63698007 |Finding site| = << 80891009 |Heart structure| {{ R.moduleId = 32506021000036107 |AU extension|}} )

          • or

          • 1b) < 404684003 |Clinical finding| : [1..1] ( 63698007 |Finding site| = << 80891009 |Heart structure| ) {{ R.moduleId = 32506021000036107 |AU extension|}}

          • Answer: ? 1a

        2. Exactly one matching relationship, and this relationship is in the AU core

          • 2a) < 404684003 |Clinical finding| : ( [1..1] 63698007 |Finding site| = << 80891009 |Heart structure| {{ R.moduleId = 32506021000036107 |AU extension|}} )

          • or

          • 2b) < 404684003 |Clinical finding| : ( [1..1] 63698007 |Finding site| = << 80891009 |Heart structure| ) {{ R.moduleId = 32506021000036107 |AU extension|}}

          • Answer: ? 2a



    • Which keyword filters must be qualified with a component/refset type? (e.g. "C", "D", "R", "M")

      • For example, do we qualify "substrate"? "languageRefSetId", "preferredTerm", "fullySpecifiedName", "acceptableTerm"?



    • What options do we provide for constraining terms, preferred terms, fully specified names, acceptable terms and/or selecting language refsets?

      • See slide deck

Confirm next meeting date/time

Former user (Deleted)

Next meeting to be held at 20:00 UTC on Wednesday 17th January 2018

 

Copyright © 2026, SNOMED International