Goals
- Briefly mention relevant IHTSDO business meetings in Wellington
- Discuss updates to ECL in v1.1
- Decomposition syntax
- Nesting/subexpressions
- Discuss proposed v1.0 Template Syntax
Agenda and Meeting Notes
| | |
---|
Welcome, introductions and apologies | | |
Agenda review | | Review agenda for today's meeting |
IHTSDO Business Meetings in Wellington | | Relevant Modelling Advisory Group (MAG) meeting topics - - Machine Readable Concept Model (MRCM) - released for community review
- SNOMED CT bindings to FHIR resources
- Extending SNOMED CT URI standard to support computable languages
- For example (syntax):
- For example (instance):
- Do we allow language instances to have a version
- How should we refer to the version of a syntax? (e.g. "20160131" or "1.1")
- Which characters must be replaced with hexidecimal? For example:
- Reserved characters
":" --> %3A "/" --> %2F "?" --> %3F "#" --> %23 "[" --> %5B "]" --> %5D "@" --> %40 "!" --> %21 "$" --> %24 "&" --> %26 "'" --> %27 "(" --> %28 ")" --> %29 "*" --> %2A "+" --> %2B "," --> %2C ";" --> %3B "=" --> %3D
Other (?) Space --> %20 "<" --> %3C ">" --> %3E " " " --> %22 "%" -->
|
Expression Constraint Language v1.1 | | - Discuss new updates to ECL in v1.1
- Decomposition syntax - for example:
- 57617002 |Urine specimen collection (procedure)| . 363701004 |Direct substance|
- ... equivalent to ... < *: { R 363701004 |Direct substance| = 57617002 |Urine specimen collection (procedure)| }
- ( << 17636008 | specimen collection| : 260686004 | method | = 129314006 | Biopsy - action | ) . 363701004 | direct substance|
- ... equivalent to .... << 105590001|substance| : R 363701004 | direct substance| = ( << 17636008 | specimen collection| : 260686004 | method | = 129314006 | Biopsy - action | )
- (X . |associated with| AND < |organism|) . |cb|
- Subexpression requirements
|
Template Syntax v1.0 | | - Discuss draft Template Syntax v0.1
Example 1: 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] } Example 2: Family history of disease X in family member Y 413350009 |Finding with explicit context| : [[~1..1]] { 246090004 |Associated finding| = [[+id (< 404684003 |Clinical finding)]], 408732007 |Subject relationship context| = [[+id (<< 125676002 |Person (person)|)]], 408729009 |Finding context| = 410515003 |Known present|, 408731000 |Temporal context| = 410511007 |Current or past (actual)| } - Topics raised by Ed
- Preference for option 1 syntax. That is, with 'remove slots' e.g.[[ ~ 0..1 @slot1]] and 'replace slots' e.g. [[ + id (< 12345 |term|) @slot2 ]]
- Note: Rather than '+ cpt' for a concept replacement, I now prefer '+ id' (for consistency with the URI standard which uses "http://snomed.info/id/267038008" for the concept 267038008 |Edema|)
- The fact that the "~" may not be necessary in a 'remove slot', as the absence of a "+" may be sufficient (for discussion with the SLPG)
- The requirement to be able to replace other characters in an expression constraint template (such as comparison operators "=" and "!=")
- If we all agree on this requirement, then we just need to select an appropriate abbreviation. I see in your example you've used "+char". Perhaps we could also consider "+str"?
- 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.
|
Proposed Syntax Rules and Questions - Constraints and names appearing before a brace apply to the whole relationship group
- Constraints and names appearing before an attribute apply to the whole Attribute Value pair
- A cardinality constraint:
- Preceding a brace indicates the number of times the following relationship group is allowed in the final expression (default separator between repetitions is ",")
- Preceding an attribute within a relationship group indicates the number of times the following attribute may appear with a distinct (non-redundant) value in each instance of the given relationship group (default separator between repetitions is ",")
- Preceding an attribute that is not in a relationship group indicates the number of times the following attribute may appear with a distinct (non-redundant) value in the relevant expression (or subexpression) (default separator between repetitions is ",")
- Within a slot that is a focus concept of an expression (or subexpression) indicates the number of times the slot can be filled in the focus (default separator between repetitions is "+")
- Within a slot that is the attribute in an Attribute-Value pair indicates the number of distinct attribute concepts that can be used in this position in the expression (default separator between repetitions is ",")
- Within a slot that is the value of an Attribute-Value pair (but which is NOT the focus concept of a subexpression) is not allowed ???
- Question 1 - How do we represent the cardinality of how many non-redundant values may appear in a given Attribute-Value pair across any relationship group. While this is currently always [0..*] in the MRCM, this may be more relevant in specialized authoring templates.
- Question 2 - Do we need to provide support to vary the default connector between repetitions. Note, I think this is probably more important for Expression Constraint Templates, as there are more options (e.g. ANDs and ORs)
- Question 3 - Do we introduce the ability for expression constraints in a slot to be replaced by a variable name (assigned using a SET-IN construct)? For example:
- SET (severity_range = < |Severities|) IN [[ @finding ]]: |Severity| = [[+ecl ([[$severity_range]]) ]]
|
Confirm next meeting date/time | | Next meeting to be held at 20:00 UTC on Wednesday 9 November (due to SNOMED Expo in New Zealand) |
Meeting Files
No files shared here yet.