2023-07-13 - SLPG Meeting

2023-07-13 - SLPG Meeting

Date & Time

10:00 to 11:00 UTC, Thursday 13th July 2023

Location

Zoom meeting link

Goals

  • Review draft ECL Guide updates for ECL 2.2 enhancements: Alternate Identifiers (LOINC) and top/bottom operators (GPS)

  • Any other topics

Attendees 

  • Chair: @Kai Kewley

  • Attendees: @Daniel Karlsson @Jeremy Rogers 

  • Staff: @Alejandro Lopez Osornio @Kath Priest 

  • Apologies:



Agenda and Meeting Notes

Description

Owner

Notes

Description

Owner

Notes

Welcome and agenda

All



Any feedback on syntax changes

All



LOINC semantics update

All

Following:

  • Concerns about the semantics of LOINC:

    • We need to understand the semantics of the LOINC SNOMED CT Edition so that we can provide advice about how these LOINC alternate identifiers in ECL should be used. @Kai Kewley to contact Jim more information. Should LOINC attributes be used?

    • DK- The LOINC domain is fairly flat.

      • Subtypes may come in when one concept may have a method specified and another code is very similar but does not have method specified.

      • Loinc parts may also have subsumption 

Review Draft ECL Guide Updates

All

Topics for Oct Conference

All

  • DK: Discussion of postcoordination transformations for Level 1+ or Level 2

    • use of template language?

    • Transformation choice interactive?

  • KK: PCE expression maintenance

  • JR: History supplements - Deprecate the WAS-A historic association? Causes implementation issues.

    • Bring in other groups? Editorial EAG

The items below are currently on hold

URIs for language instances



ON HOLD

ECL v2.1 - Requirement proposals (to be archived)

All

ON HOLD -

Potential requirements for ECL v2.1 - Discussion and brainstorming

  • Daniel's comments

  • Context supplements - e.g.

    • << 56265001 |Heart disease|  {{ + CONTEXT }} – This syntax is too general, as there is a risk of including absent finding, not-done procedure and family history

    • << 56265001 |Heart disease| {{ + CONTEXT-DEFAULT }} ? – What would this mean?

    •  

      • Brief form:

        • [[@ecl_query]] {{ + Context (Temporal = [[ @temporal_value]]}}

      • Expanded form:

        • [[ @ecl_query ]] OR  (< 243796009 |Situation with explicit context|:
                  { ( 246090004 |Associated finding| = ( [[ @ecl_query ]] ) 
                         OR |Associated procedure| = ( [[ @ecl_query ]] )
                   ( |Procedure context| = |Done| OR |Finding context| = |Known present|),
                      |Subject relationship context| = |Subject of record|,
                       |Temporal context| = [[ @temporal_value ]] } )

      • Example 1: << |Heart procedure| {{ + Context (Temporal = *) }}

        • <<  |Heart procedure| OR  (< 243796009 |Situation with explicit context|:
                  { 246090004 |Associated finding| = << 56265001 |Heart disease|,
                      |Procedure context| = |Done|,
                      |Subject relationship context| = |Subject of record|,
                       |Temporal context| = * } )

        • Example 2: (<< |Heart disease| OR << |Heart procedure| ) {{ + Context (Temporal = *) }}

          • <<  |Heart procedure| OR  (< 243796009 |Situation with explicit context|:
                    { ( 246090004 |Associated finding| = (<< |Heart disease| OR << |Heart procedure| ) 
                           OR |Associated procedure| = ( << |Heart disease| OR << |Heart procedure| ) )
                        ( |Procedure context| = |Done| OR |Finding context| = |Known present|),
                        |Subject relationship context| = |Subject of record|,
                         |Temporal context| = * } )

      • << 56265001 |Heart disease| {{ + Context (Temporal = *, FindingContext=<<|Known present| }}

        • Will return all types of heart disease, plus concepts like 394886001 |Suspected heart disease (situation)|, and 429007001 |History of cardiac arrest (situation)|

        • Expands to: 

          • << 56265001 |Heart disease| OR
              (< 243796009 |Situation with explicit context|:
                    { 246090004 |Associated finding| = << 56265001 |Heart disease| } )

    • However, you may want to exclude (or include) specific contexts - for example:

      1. To ensure that the finding was about the subject of the record (and not a family history, e.g. to exclude 429959009 |Family history of heart failure (situation)|), you could say:

        • << 56265001 |Heart disease|  {{ + CONTEXT (relationship = 410604004 |Subject of record| }}

      2. To ensure that the finding was 'Known present' (e.g. to exclude 394926003 |Heart disease excluded (situation)|), you could say:

        • << 56265001 |Heart disease|  {{ + CONTEXT (finding_context = << 410515003 |Known present| }}

      3. To ensure that the finding was about the subject of the record AND known present, you could say:

        • << 56265001 |Heart disease|  {{ + CONTEXT (relationship = 410604004 |Subject of record|, 
                                                                                                    finding_context = << 410515003 |Known present| }}

      4. ?? Is there any use case for restricting adding temporal context? (e.g. temporal != << 410513005 |In the past|)

    • Is any more syntactic sugar required? E.g.

      • {{ + CONTEXT (relationship = self, finding context = present, temporal != past) }}

      • {{ + CONTEXT (self, present, ! past) }}

    • Other ideas? Common profiles?

  • --------------------------

  • Ability to return attribute types (see proposal below)

    • [ attributes ] << 125605004 |Fracture of bone (disorder)|

    • << 125605004 |Fracture of bone (disorder)| . Attributes

    • << 125605004 |Fracture of bone (disorder)| . (<< 125605004 |Fracture of bone (disorder)| . Attributes )

    • [ attribute, value] << 125605004 |Fracture of bone (disorder)|

  • -------------------------

  • Reverse membership (see below)

    • Which reference sets "contain" the given concept(s) - e.g. 421235005 |Structure of femur|?

      • 421235005 |Structure of femur| . Refsets

      • 421235005 |Structure of femur|. Refsets [ referencedComponentId ]

      • 421235005 |Structure of femur| . Refsets [ targetComponentId ]

  • --------------------------

  • Other?

Returning Attributes

@michael lawley

ON HOLD -

  • Currently ECL expressions can match (return) concepts that are either the source or the target of a relationship triple (target is accessed via the 'reverse' notation or 'dot notation', but not the relationship type (ie attribute name) itself. 

For example, I can write: 

<< 404684003|Clinical finding| : 363698007|Finding site| = <<66019005|Limb structure| 

<< 404684003|Clinical finding| . 363698007|Finding site| 

But I can't get all the attribute names that are used by << 404684003|Clinical finding| 

  •  

    • Perhaps something like:

      • ? R.type ? (<< 404684003 |Clinical finding|)

    • This could be extended to, for example, return different values - e.g.

      • ? |Simple map refset|.|maptarget| ? (^|Simple map refset| AND < |Fracture|)

Reverse Member Of

@michael lawley

ON HOLD -

What refsets is a given concept (e.g. 421235005 |Structure of femur|) a member of?

  • Possible new notation for this:

    • ^ . 421235005 |Structure of femur|

    • ? X ? 421235005 |Structure of femur| = ^ X

Dynamic Templates



  • ON HOLD -

  • Continue discussion on dynamic templates

  •  

    • Inter-attribute dependencies

      • Acute/Chronic and Inflammation - Adding a clinical course requires specializing the inflammation morphology 

        • E.g. |Pyelonephritis| : |Clinical course| = |Chronic|
          should be
          |Pyelonephritis| : |Clinical course| = |Chronic|, |Associated morphology| = |Chronic inflammation|

        • E.g. |Pyelonephritis| : |Clinical course| = |Sudden onset AND/OR short duration|
          should be
          |Pyelonephritis| : {|Clinical course| = |Sudden onset AND/OR short duration||, |Associated morphology| = |Acute inflammation|

      • Infectious Causative Agents - Adding a |causative agent| = |Domain Bacteria| or |Virus| requires adding a |Pathological process| = |Infectious process|

        • E.g. |Nephritis|: |Causative agent| = |Domain bacteria|
          should be
          |Nephritis|: |Causative agent| = |Domain bacteria|, |Pathological process| = |Infectious process|

      • Congenital and Acquired - Adding an |Occurrence| of |Congenital| to a focus concept with an abnormal morphology, requires adding a |Pathological process| of |Pathological development process|

        • E.g. |Koilonychia|: |Occurrence| = |Congenital|
          should be
          |Koilonychia|: |Occurrence| = |Congenital|, |Pathological process| = |Pathological developmental process|

      • Situations with Explicit Context 

    •  

      1. if the procedure context = |Planned|, then the temporal context should be << |Current of specified time|

        1. If the procedure context = |In progress|, then the temporal context should be << |Current|

        2. If the procedure context = |Performed| or |Done|, then the temporal context should be << |Current or past (actual)|

      • Note: for this use case (of |Procedure with explicit context|) perhaps we just recommend (or require) that the full role group is spelled out.

      • Next steps

        • Representation of the content rules

          • Who creates the complete list of rules and how?

            • What formalism?

            • Determine which are mandatory and which are optional

          • Implementation of content rules - e.g.

            • Guided data entry by pre-populating role groups in expression template based on definition of focus concepts (for design-time use, such as mapping)

            • Mandatory content rules could be added to transform process

URIs for Extended Editions



ON HOLD - How to refer to an 'extended edition' using a URI - e.g. "International Edition plus the following 2 nursing modules: 733983009  |IHTSDO Nursing Health Issues module|and 733984003 |IHTSDO Nursing Activities module|

Use Case - Need to execute an ECL, that refers to "^ 733991000 | Nursing Health Issues Reference Set (foundation metadata concept) |" and/or "^ 733990004 | Nursing Activities Reference Set (foundation metadata concept) |", where the substrate includes the international edition, plus the modules that include these reference sets

July 2020 International Edition URI: http://snomed.info/sct/900000000000207008/version/20200731

July 2020 International Edition + nursing modules URI ?? - For example:

  File Modified

Microsoft Powerpoint Presentation SNOMED Languages Project Group (September 2022 business meetings).pptx

2023-Jul-12 by Kai Kewley

Agenda and Meeting Notes

Copyright © 2025, SNOMED International