| | |
|---|
Welcome and agenda | @Former user (Deleted) | Welcome to new attendees |
ECL v1.6 - Concept Filters | @Former user (Deleted) and @Daniel Karlsson (Unlicensed) | Feedback from Brandon and Guillermo, re querying unpublished content using effectiveTime filter Should we also add module, effectiveTime and active filters to Descriptions in v1.6?
|
ECL v1.7 - Access to historical refsets | | Under consideration (brainstorming) To leverage the existing memberOf (^) function, which currently only brings back the 'referencedComponentId', rather than the whole 'member' (i.e. row) as you might expect a 'memberOf' function to do. If we defined an expanded form of the current 'memberOf' function, which explicitly shows that by default we're selecting attributeOrder = 0 from the member, then the following 2 ECL would be equivalent. ^ 447562003 |ICD-10 complex map refset| ^ [0] 447562003 |ICD-10 complex map refset|
This would allow us to select other columns of the refset using the same memberOf function - e.g. And we could then introduce a 'Member filter' with a similar attribute reference - e.g. Additional Examples Find all the inactive concepts associated by any historical association to a subtype of 195967001 | Asthma (disorder) | Find all the SNOMED CT concepts that map to ICD-10 code "L56.2" Find the SNOMED CT concept that maps to ICD-10 code "L56.2" with a mapRule = 1 and mapGroup = 1 Find the reason that concept 67415000 |Hay asthma| was inactivated (answer: 900000000000482003 |Duplicate component|) Find the active concept that is the 'same as' inactivated concept 67415000 |Hay asthma|
Questions Should we allow more than one column in a refset to be selected? What should the rules be about using this inside a subExpressionConstraint? e.g. Should we allow the file name (from the respective RF2 file?) and/or the refset attribute concept to be used instead of the attributeOrder? e.g. ^ < 900000000000522004 | Historical association refset| {{ M [1] = < 195967001 |Asthma| }} ^ < 900000000000522004 | Historical association refset| {{ M [targetComponentId] = < 195967001 |Asthma| }} ^ < 900000000000522004 | Historical association refset| {{ M [900000000000533001 |Association target component|] = < 195967001 |Asthma| }}
Should we allow a 'or self' operator, to make it more efficient to create historical subsets - e.g. the following expression constraint would return all the inactive concepts that were replaced by an equivalent subtype of |Asthma| PLUS all the subtypes of |Asthma| as well. This would be useful for finding all the matches that you may need to look for in a health record. Should we allow filters to be nested inside other filters? e.g.
Suggestions from last meeting: ^ |Refset| {{ M mapTarget = "N.75 }} ? |mapTarget| ? mapOrSelfOf {{ refset = 900000000000527005 }} (<< 197710000) mapOrSelfOf(sameAs, << 197710000) mapOrSelfOf {{ refset = 281000036105, match = #2, result=#0 }} (386938006 OR 100005 OR 70570002) mapOf {{ refset = 281000036105, match = #2, result=#0 }} (386938006 OR 100005 OR 70570002)
Reference set descriptor templates (for easy reference) See discussion below "Querying Refset Attributes" |
onlyThe items below are currently on hold |
Postcoordination Topics | | |
Dynamic Templates | | |
Postcoordination Use Case Examples | All | Example 1 - Dentistry / Odontogram Example 2 - Terminology binding Example 3 - Mapping Design-time activity Map targets may not be able to be fully represented using concept model attributes In many cases, an extension (with primitive concepts) should be recommended where there are gaps in the mapping There may be some cases in which postcoordination is helpful (e.g. LOINC to SNOMED CT map)
Example 4 - Natural Language Processing Usually run-time activity. May require manual confirmation of coding suggestions (unless low clinical risk, eg for suggesting relevant patient records for manual review)
|
Postcoordination Guidance | @Former user (Deleted) , @Anne Randorff Højen , @Kai Kewley | Practical Guide to Postcoordination |