| | |
|---|
Welcome and agenda | All | |
ECL 2.2 Check | @Kai Kewley | ECL 2.2 - published Has anyone implemented this? |
Expanding the use of the ECL standard | All | ECL Lite Review draft specification updates: Feedback: Concrete string matching: Removal description filters limits the ability to define a set of concepts by language and dialect Spec Labels - Use positive labels rather than exclusions Appendix - make explict that ECL Lite syntax must work with servers with full - intension is true subset.
Previous discussion: How to make it easier to add an ECL capability to more tooling? SI already has open source implementations The specification is now very large. An ECL Lite profile would reduce the months of effort required to implement the whole specification when starting fresh.
ECL Lite - MVP Scope: *, <, <<, >, >>, <!, !>, :, ^, AND, OR, MINUS, (), {{ +HISTORY-(MIN,MOD,MAX) }}, <!!, !!> Dot - Maybe? {{ C active }} Not included: Declare profile using block/set of language capabilities Survey capabilities in existing implementations - any existing capability groups? There are parallels in ECL builder and education scopes
|
ECL Enhancement Request: Set of reference sets containing a concept | @michael lawley | See comment here: Re: Discussions (2) Use cases: Syntax options: |
ECL Change - | @michael lawley | Simplify concrete string matching. |
ECL Maintenance Recommendations | All | We plan to add a "Maintenance Recommendations" page to the ECL guide. @Jeremy Rogers (Unlicensed) has drafted some content on this topic. @Kai Kewley to share document open for comments + B2i expo video. Sections to consider adding: What does best practice ECL look like - what are the benefits ECL comments to record intent Existing tooling and features
|
MRCM on FHIR | All | There is a growing desire to enable access to the SNOMED CT Machine Readable Concept Model via FHIR Terminology Servers. Use cases: How could this work? Other option was considered but rejected because of demand of TS implementation complexity New implicit URIs? Consider supporting a reverse lookup - given a focus concept, which attributes can this be used within. |
Postcoordination Guide + Reference Implementation Feedback | @Alejandro Lopez Osornio | Very little feedback received so far. An education module could be a way to expose more people to the caveats and best practises. |
Expression Repository Maintenance | All | - Aim to round off the guidance - make expression repositories feasible - An expression repository uses a specific edition and version of SNOMED CT - how can expressions be migrated to a new version? Use cases of expressions: Classifying expressions to discover closest existing precoordinated concept - no requirement for maintenance because expression not recorded in patient record Expression is recorded in patient record - need the ability to find relevant patients. This may not work well over time as SNOMED changes.
Potential issues when upgrading the substrate of an expression repository Inactive concepts within the expression (focus concept, or attribute name or value) Concepts changing hierarchies (semantic tag) - e.g. procedure → observation Changes to concept model Will need to classify again to infer different ancestors and attributes MC: This has a lot of overlap with ECL maintenance
General approaches for identifying issues: FHIR interface could validate the expression again to identify inactive concepts Expand existing value sets to see if there is a radical change in size Content unit tests - needs
Strategies to avoid these issues: Capture user input (close to user form or template slot inputs) so that templates or transformations can be reapplied. Transform input again against the new substrate: Use the close to user form, level 1 transformations Create expressions using a proximal parent with minimal modeling, lean on Level 1 transformations (see guide) Expression repository should retransform existing close to user form expressions to classifiable expressions
@Kai Kewley What techniques from precoordinated authoring could be reused? How do international authors update PPP concepts, what automations? Should expression repository be versioned before being upgraded, or should the repository be recreated against the new substrate?
Strategies to fix content issues:
Use cases for an expression repository, how are these impacted over time as the substrate changes. |
ECL Results - TS consistency | @Jeremy Rogers (Unlicensed) | Testing consistency between Snowray (Snow Owl), Ontoserver, Snowstorm. Also using custom made NHS Subset maintenance tool, would like to migrate to a standardised solution. Questions: Should inactive concepts be routinely suppressed from all results? Answer: Inactive concepts should not be included when using hierarchy constraints, because they are not part of the hierarchy. They should be included when using wildcard. The default substrate includes inactive. Same in FHIR. All agree. Action: Check the spec makes this clear. "Default substrate". Known tooling issues: Snowstorm is not behaving well. e.g. ^ xxx AND YYY (where YYY is inactive). Check both native and FHIR API.
Should inactive concepts be returned as active members of a simple refset? Are text definitions and FSNs routinely in scope of any description filters? Do description filters run by default over inactive descriptions? Inactive are excluded by default in the spec, however there is no way to search active and inactive at once Action: Update ECL Spec to allow searching over active and inactive (apply everywhere, concept, description, members)
Snow Owl searches active and inactive descriptions by default
Is a “pending move (concept)” description active or inactive? Are the match and wild description filters case sensitive or not (or, in the case of Ontoserver, do they even work at all?) Group recommends case insensitive matching for "match" Action: Update the ECL guide with this recommendation. Group does not agree about "wild" case sensitivity. Action: Consider adding ECL regex filter.
There are also some interesting edge case differences in the ability of each server to process ECL match description filters if they contain various symbol characters, such as *^% and so on. Action: Discuss updating the ECL spec to add escape character for matching double quotes. MC: Implementation Note - ECL filters commonly include double quotes - when including these in FHIR ValueSet requests make sure they are escaped. Action: Add to ECL Guide and any Snomed FHIR IG. Other characters are perhaps an edge case. More testing needed against know TS.
ML: Some observations: it is interesting to see the number of examples that are querying against terms – the results are not surprising since 1., this is a relatively new part of the spec, and 2., it steps outside the original conception of ECL as a query language that only used defining aspects of concepts as supported by the Concept and Relationship tables. |
Other Topics | All | |
The items below are currently on hold |
Meds ECL Requirement | @michael lawley | RequirementRequirement to select a substance or a modification of that substance .... use case: during authoring to prompt the user with all the active ingredient options. Author/modeller chooses a drug and wants to refine the selection using modification-of substances. BackgroundThe modification-of attribute is a transitive property in OWL. Transitive properties have a similar characteristic to an is-a relationships but without stating a subtype relationship. In SNOMED CT an OWL property chains are used to help organise the hierarchy, allowing products with modified substance to be subsumed into concept groupers defined using the base substance. However in this case the base substance should not be inherited into the product with the modified substance. The base (not modified) version of the substance is found as redundant and removed during NNF calculation. See OWL Guide: 2.5. Generating Necessary Normal Form Relationships from the OWL Refsets Example property chain: "|Has active ingredient| o |Is modification of|" is a sub-property of "|Has active ingredient|". Example hierarchy: Parent Child Because And Property Chain: SubObjectPropertyOf(
ObjectPropertyChain(
:127489000 |Has active ingredient (attribute)|
:738774007 |Is modification of (attribute)|
)
:127489000 |Has active ingredient (attribute)|
)
.. which results in OWL seeing the non modified ingredient as a property of the concept for the purpose of subsumption. Finally TransitiveObjectProperty(:738774007 |Is modification of (attribute)|)
This could be used by the ECL engines. Solution Options: ECL Language could allow something like: JR: At what point do we stop keeping everything stateless and use a reasoner. Should we check our approach / policy? ML: We need a solution that works with all property chains, not just transitive properties... we have that during NNF calculation, we are currently removing it. Perhaps those could be put into the NNF or another file to enable ECL implementations. @Kai Kewley and Ale to catchup with Jim and Yong on this. DK: concerned that complexity of ECL would increase and usefulness may decrease? Maybe other architectures are needed to support another way to run snomed queries? JR: Suggests a hybrid ECL engine that can use a reasoner when needed, if the user needs to run a query that requires one and needs the complete answer. ALO: Perhaps SI could pre-compute the ECL index in a standard format for use in any ECL engine. A way to reduce the complexity for implementers and also standardise the solution. This could be a file in the release and also an open source tool.
|