| | |
|---|
Welcome, apologies and agenda review | @Former user (Deleted) | Record attendees and apologies Review agenda for today's meeting |
Feedback from B2i on ECL | @Orsolya Bali (Unlicensed) | Members of Descendants B2i proposes that the MemberOf function is allowed to be applied to a set of reference sets 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: Alternative solutions Using the existing ":" refinement symbol Applying the strength as a refinement of the substance 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|)}
DL examples ∃measurementGroup.( ∃hasActiveIngredient.CalciumCarbonate ⊓ ∃hasBOSS.CalciumOnly ⊓ ∃strength.( ∃#500.value ⊓ ∃unit.Mg ) ) ∃roleGroup.( ∃hasActiveIngredient.CalciumCarbonate ⊓ ∃hasBOSS.( CalciumOnly ⊓ ∃strength.( ∃#500.value ⊓ ∃unit.Mg ) ) )
|
Progress SNOMED CT Template Syntax | @Former user (Deleted) | See Template Syntax Specification Please provide any other comments you have. |
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 |Method| = 312251004 |Computed tomography imaging action|, 405813007 |Procedure site - Direct| = [[+id (<<442083009 |Anatomical or acquired body structure|)] @site] }
|
Replace slots - Type of replacement Replace with single concept: [[ +id ]] Replace with any expression: [[ +scg ]] Replace with an expression constraint: [[ +ecl ]] Replace with a character string: [[ +str ]] 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 (finding)| 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 |Method| = 312251004 |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 |Method| = 312251004 |Computed tomography imaging action|, [[ 1..1 ]] 405813007 |Procedure site - Direct| = [[+id (<<442083009 |Anatomical or acquired body structure|)] @site] }
Cardinality of focus concepts 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/time | @Former user (Deleted) | Next meeting to be held at 20:00 UTC on Wednesday 1st February 2017 |
Dear SLPG members,
As discussed at last week's SLPG meeting, I have updated the ECL (v1.2) to allow the memberOf function to be applied to expression constraints (in brackets).
Could all member of the SNOMED Languages Project Group please visit the WIP version of the ECL specification (htpp://snomed.org/-ecl ... note that the hyphen before the ecl takes you to the Work-In-Progress version, which is not yet public), and check the updates.
Please send me your comments as soon as possible (this week if you can). However, if you need longer, please just let me know and I'll wait for your feedback.
Here is a summary of the changes required (note: these are all related to the memberOf function):
- Section 1 (Introduction) - Updated history
- Section 3.2 (EC Requirements) - Updates to member Of requirement
- Section 4 (Logical Model) - Member of function applies to expression constraint, rather than focus concept
- Secton 5.1 (Brief Syntax) - simpleExpressionConstraint = [constraintOperator ws] [memberOf ws] (eclFocusConcept / "(" ws expressionConstraint ws ")")
- eclFocusConcept = conceptReference / wildCard
- Section 5.2 (Long Syntax) - same changes as in brief syntax
- Section 5.3 (Informative Comments) - Changes to simpleExpressionConstraint and eclFocusConcept descriptions
- Section 6.1 (Simple Expression Constraints) - Changes to memberOf examples and explanation:
Please note that it is also possible to apply the memberOf function to an expression constraint that returns a set of reference set concepts. When this is done, the expression constraint to which the memberOf function is applied, must be enclosed in parentheses. For example, the following expression constraint is satisfied by the set of concepts which are members of any subtype of 450973005 |GP/FP health issue reference set| :
^ (< 450973005 |GP/FP health issue reference set| )
The expression constraint above evaluates to the same set of concepts as applying the memberOf function to each individual subtype of 450973005 |GP/FP health issue reference set| and then taking the union of these sets. Therefore, when applied to the 20160731 international edition of SNOMED CT, the above expression constraint evaluates to the same set of concepts as the following expression constraint.
^ 450990004 |Adverse drug reactions reference set for GP/FP health issue| OR
^ 450989008 |Allergies reference set for GP/FP health issue| OR
^ 450985002 |Disorders and diseases reference set for GP/FP health issue| OR
^ 450988000 |Family history reference set for GP/FP health issue| OR
^ 450991000 |Processes and procedures reference set for GP/FP health issue| OR
^ 450986001 |Results reference set for GP/FP health issue| OR
^ 450992007 |Social history reference set for GP/FP health issue| OR
^ 450984003 |Symptoms and signs reference set for GP/FP health issue|
Thanks!
Kind regards,
Linda.