| | |
|---|
Welcome, introductions and apologies | @Former user (Deleted) | |
Agenda review | @Former user (Deleted) | Review agenda for today's meeting |
Compositional Grammar | @Former user (Deleted) | Document migration to http://snomed.org/scg Feedback Solution A (which allows "+0" and "-0.00") Solution B (which does not allow "+0" and "-0.00" Outcome - The group decided to go with Solution A Requires parser update (http://apg.ihtsdotools.org) and github update (parser)
|
Expression Constraint Language v1.1 | @Former user (Deleted) | |
URI Standard | @Former user (Deleted) | URIs for SNOMED syntaxes SCG - SNOMED Compositional Grammar (with version option) ECL - Expression Constraint Language (with version option) QRL - SNOMED Query Language (with version option) STS - SNOMED Template Syntax (with version option) ETL - Expression Template Language (with version option) CTL - Expression Constraint Template Language (with version option) QTL - Query Template Language (with version option)
|
URIs for SNOMED syntax instances ID - Expression (either precoordinated or postcoordinated)
ECL - Expression Constraint QRL - Query ETL - Expression Template CTL - Expression Constraint Template QTL - Query Template
|
URIs for SNOMED syntax instances - with versioning SNOMED syntax instance using versioned edition
SNOMED syntax instance using syntax version SNOMED syntax instance using versioned edition and syntax version
|
Special Characters (not for ".", "-", "_", "~") Hexidecimal " " → %20 “!” -→ %21 “"” → %22 “#” → %23 "$" → %24 "%" → %25 "&" → %26 “’” → %27 "(" → %28 ")" → %29 "*" → %2A "+" → %2B "," → %2C
"/" → %2F
":" → %3A ";" → %3B "<" → %3C "=" → %3D ">" → %3E "?" → %3F "@" → %40 "[" → %5B "\" → %5C "]" → %5D "^" → %5E
“`” → %60 "{" → %7B "|" → %7C "}" → %7D
|
Upgrade "SNOMED URI Standard" to "SNOMED IRI Standard"? |
Template Syntax | @Former user (Deleted) | 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 precoordinated expression (ie concept): [[ +id ]]?? [[ +cpt ]]?? Replace with any expression: [[ +id ]] 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 7th December |
My reading of IRIs is that it allows non-ASCII characters to be included "as-is". The alternative is that that their UTF8 encoding is %-encoded.
Given that the only real use case for this is for embedding ECLs etc into the URI/IRI and that the necessary %-encoding of the punctuation makes them all but human-unreadable anyway, I'm not really convinced that being able to include ç in the IRI rather than %c3%a7 is a big enough win to move from URI to IRI.
Note that the various standards that use these (eg FHIR) use URIs, so conversion would be required which imposes an implementation tax on those domains that generally doesn't exist at the moment. Standards that already work with IRIs already have that tax so they would not have significant additional work imposed by this spec remaining with URIs.