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