Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Date & Time

20:00 UTC Wednesday 7 December 2016 

GoToMeeting Details

Click here to see GoToMeeting joining information

Goals

  • To discuss feedback from B2i on Expression Constraint Language
  • To progress the SNOMED CT Template Syntax

Attendees 

Apologies

Agenda and Meeting Notes

Advanced Tables - Table Plus
border2
rowStylesbackground-color:#ccccff;font-weight:bold;,background-color:"#eeeeff";font-weight:normal;,background-color:#eeffff;font-weight:normal;
autoNumberSorttrue
autoNumbertrue
enableSortingfalse
Description
Owner
Notes

Welcome, apologies and agenda review

Record attendees and apologies

Review agenda for today's meeting

Feedback from B2i on ECL

Members of Descendants

B2i proposes that the MemberOf function is allowed to be applied to a set of reference sets

  • ^<<446609009|Simple type reference set| /* Invalid */

 

For example, to select members of all GP refsets:
|General Practice / Family Practice reference set|
 
     |GP/FP health issue reference set|
 
         |Adverse drug reactions reference set for GP/FP health issue|
 
         ...
 
     |GP/FP reason for encounter reference set|
 
         |Family history reference set for GP/FP reason for encounter|
 
         ...

Constraints over Medication Strength

B2i proposes that a new symbol is introduced to indicate a refinement of a relationship - for example:

  • < |Pharmaceutical / biologic product}: 
    { |has active ingredient| = << |calcium carbonate|, 
    ( |has basis of strength| = |calcium only|) ~ (|strength magnitude| >= #500), |strength unit| = |mg|)}
Alternative solutions
Using the existing ":" refinement symbol
    • < |Pharmaceutical / biologic product}: 
      { |has active ingredient| = << |calcium carbonate|, 
      ( |has basis of strength| = |calcium only|) : (|strength magnitude| >= #500), |strength unit| = |mg|)}
Applying the strength as a refinement of the substance
  • < |Pharmaceutical / biologic product}: 
    { |has active ingredient| = << |calcium carbonate|, 
      |has basis of strength| = (|calcium only|: (|strength magnitude| >= #500), |strength unit| = |mg|)}

Flattening the relationships into a 'close-to-user' form

  • < |Pharmaceutical / biologic product}: 
    { |has active ingredient| = << |calcium carbonate|,
      |has basis of strength| = |calcium only|,
     |strength magnitude| >= #500, 
    |strength unit| = |mg|)}
Progress SNOMED CT Template SyntaxSee WIP Template Syntax - Specification and Guide

Remove slots and replace slots

    • Remove slot: [[ 1..1 ]], [[ 1..1 @slotName ]]
    • Replace slot: [[ +id (<< 138875005 |SNOMED CT concept|) ]], [[ +id ]], [[ + ]], [[ +id(<<138875005 |SNOMED CT concept) @slotName $valueReference ]]
    • Example: CT of X
      71388002 |Procedure[[1..1 @roleGroup1]]
      260686004 |Method312251004 |Computed tomography imaging action|,
        405813007 |Procedure site - Direct| = [[+id (<<442083009 |Anatomical or acquired body structure|)] @site] }

Replace slots - Type of replacement

    • Replace with precoordinated expression (ie concept): [[ +id ]] ?? [[ +cpt ]] ??
    • Replace with any expression: [[ +id ]]
    • Replace with an expression constraint: [[ +ecl ]]
    • Replace with a character string: [[ +str ]]
      • Use cases include replacing comparison operators "=" and "!="
    • Example 1: MRCM domainTemplateForPrecoordination (Finding with explicit context)
      • [[+id(<< 243796009 |Situation with explicit context (situation)|: [0..0] 408730004 |Procedure context| = *, [0..0] 363589002 |Associated procedure| = *)]]: 
        [[0..*]] { [[1..*]] 408729009 |Finding context| = [[+id(<< 410514004 |Finding context value (qualifier value)|)]], 
        [[1..*]] 408731000 |Temporal context| = [[+id(<< 410510008 |Temporal context value (qualifier value)|)]], 
        [[0..*]] 246090004 |Associated finding| = [[+id(<< 404684003 |Clinical finding (finding)| OR << 272379006 |Event (event)|)]], 
        [[0..*]] 408729009 |Finding context| = [[+id(<< 410514004 |Finding context value (qualifier value)|)]], 
        [[0..*]] 408732007 |Subject relationship context| = [[+id(<< 125676002 |Person (person)|)]], 
        [[0..*]] 408731000 |Temporal context| = [[+id(<< 410510008 |Temporal context value (qualifier value)|)]] }
    • Example 2: MRCM domainTemplateForPostcoordination (Finding with explicit context)
      • [[+id(<< 243796009 |Situation with explicit context (situation)|: [0..0] 408730004 |Procedure context| = *, [0..0] 363589002 |Associated procedure| = *)]]: 
        [[0..*]] { [[1..*]] 408729009 |Finding context| = [[+id(<< 410514004 |Finding context value (qualifier value)|)]], 
        [[1..*]] 408731000 |Temporal context| = [[+scg(<< 410510008 |Temporal context value (qualifier value)|)]], 
        [[0..*]] 246090004 |Associated finding| = [[+scg(<< 404684003 |Clinical finding (findi
        ng)| OR << 272379006 |Event (event)| OR << 363787002 |Observable entity (observable entity)| 
        OR << 416698001 |Link assertion (link assertion)| OR << 71388002 |Procedure (procedure)|
        )]], 
        [[0..*]] 408729009 |Finding context| = [[+scg(<< 410514004 |Finding context value (qualifier value)|)]], 
        [[0..*]] 408732007 |Subject relationship context| = [[+scg(<< 125676002 |Person (person)|)]], 
        [[0..*]] 408731000 |Temporal context| = [[+scg(<< 410510008 |Temporal context value (qualifier value)|)]] }

Cardinality

    • Cardinality of relationship group
      • Pattern: [[ 1..* ]] { .. }
      • Default operator between repeats: "," / "AND"
      • Example: CT of X
        71388002 |Procedure[[1..1 ]]
        260686004 |Method312251004 |Computed tomography imaging action|,
          405813007 |Procedure site - Direct| = [[+id (<<442083009 |Anatomical or acquired body structure|)] @site] }
    • Cardinality of attribute value pair
      • Pattern: [[ 1..* ]] 123345 |Attribute| = 234456 |Value|
      • Default operator between repeats: "," / "AND"
      • Example: CT of X
        71388002 |Procedure:
        260686004 |Method312251004 |Computed tomography imaging action|,
          [[ 1..1 ]] 405813007 |Procedure site - Direct| = [[+id (<<442083009 |Anatomical or acquired body structure|)] @site] }
    • Cardinality of focus concepts
      • Pattern: [[ +() 1..* ]]
      • Default operator between repeats: "+" / "AND"
        • How would we achieve an operator of "OR" in an Expression Constraint? - e.g. [[+ecl 1..* ]] → A OR B OR C
      • Example: 
         [[+id(<< 404684003 |Clinical finding|) 1..* ]]
       
    • Other types of cardinalities?
Other Topics raised by Ed
    • The fact that a template processor would need to 'clean-up' any left over characters, such as ":". I suggest that we try to document the steps that a template processor should follow to turn a template into an expression, constraint etc.
Confirm next meeting date/timeNext meeting to be held at 20:00 UTC on Wednesday 21 December 2016

Meeting Files

Attachments