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@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:

    •  

      1.  

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

      2. 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|}} )

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

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

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

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

      5. 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

  File Modified

Microsoft Powerpoint Presentation Draft SNOMED Query Language - Examples for Discussion.pptx

2017-Dec-18 by Former user



Copyright © 2025, SNOMED International