2016-06-22 - SLPG Meeting

2016-06-22 - SLPG Meeting

Date & Time

Wednesday 22nd June 2016, 20:00 UTC

GoToMeeting Details

Click here to see GoToMeeting joining information

Click here to see GoToMeeting recordings

Goals

  • To progress the SNOMED CT Template Syntax

Attendees 

  • Chair: @Former user (Deleted)

  • Project Group: @Daniel Karlsson@Alejandro Lopez Osornio@Ed Cheetham@Brian Carlsen@Rob Hausam

Apologies

  • @Former user (Deleted)@michael lawley

Observers

Agenda and Meeting Notes

Item

Description

Owner

Notes

Action

Item

Description

Owner

Notes

Action

1

Welcome, introductions and apologies

@Former user (Deleted)

SLPG meetings will be recorded and recordings will be accessible to SLPG members.

 

2

Agenda review

@Former user (Deleted)

Review agenda for today's meeting

  • Template Syntax - HL7 FHIR Examples

    •  

      • SNOMED CT Expression Templates and corresponding FHIR Structured Definitions

      • FHIR Mapping Example

  • Template Syntax - Details

    •  

      • Optionality (slots and relationship groups)

      • Naming (slots and relationship groups)

      • References

 

3

Template Syntax - FHIR Example Templates

@Former user (Deleted)

STEP 1 - Convert SNOMED CT Expression Template into FHIR Structure Definition (for use as Target of Mapping)

CONDITION RESOURCE

  • SNOMED CT Expression Template

[[ [1..1] @findingWithExplicitContext ]]:

#[1..2] @RGa { 246090004 |Associated finding| = ([[ [0..1] @associatedFinding ]]:

#[0..1] @RGb { 246112005 |Severity| = [[ [0..1] @severity]],

363698007 |Finding site| = [[ [0..1] @findingSite]] })

408732007 |Subject relationship context| = 410604004 |Subject of record|,

408731000 |Temporal context| = [[ [1..1] @temporalContext ]],

408729009 |Finding context| = [[ [1..1] @findingContext ]] }

  • FHIR Structure Definition

SCT_ConditionTemplate: SNOMEDCTExpressionTemplate

findingWithExplicitContext [1]: CodeableConcept

RGa [1..2]: RelationshipGroupElement

associatedFinding [1]: CodeableConcept

RGb [0..1]: RelationshipGroupElement

severity [0..1]: CodeableConcept

findingSite [0..1]: CodeableConcept

subjectRelationship [1]: CodeableConcept = 410604004 |Subject of record|

temporalContext [1]: CodeableConcept

findingContext [1]: CodeableConcept

ALLERGYINTOLERANCE RESOURCE

  •  SNOMED CT Expression Template

[[ [1..1] @findingWithExplicitContext ]]:

#[0..2] @RGa { 246090004 |Associated finding| = ([[ [1..1] @associatedFinding ]]:

370135005  |Pathological process| = [[ [0..1] @pathologicalProcess ]],

#[0..1] @RGb { 255234002 |After| = [[ [0..1] @after ]],

246075003 |Causative agent| = [[ [1..1] @causativeAgent ]] })

408732007 |Subject relationship context| = 410604004 |Subject of record|,

408731000 |Temporal context| = [[ [1..1] @temporalContext ]],

408729009 |Finding context| = [[ [1..1] @findingContext ]] }

  • FHIR Structure Definition 

SCT_AllergyIntoleranceTemplate: SNOMEDCTExpressionTemplate 

findingWithExplicitContext [1]: CodeableConcept

RGa [1..2]: RelationshipGroupElement

associatedFinding [1]: CodeableConcept

pathologicalProcess [0..1]: CodeableConcept

RGb [0..1]: RelationshipGroupElement

after [0..1]: CodeableConcept

causativeAgent [1]: CodeableConcept

subjectRelationship [1]: CodeableConcept = 410604004 |Subject of record|

temporalContext [1]: CodeableConcept

findingContext [1]: CodeableConcept

PROCEDURE RESOURCE

  • SNOMED CT Expression Template

129125009 |Procedure with explicit context|

#[1..1] @RGa { 363589002 |Associated procedure| = ([[ [1..1] @associatedProcedure ]] :

#[0..1] @RGb { 363704007 |Procedure site| = [[ [0..1] @procedureSite ]],

363699004 |Direct device| =  [[ [0..1] @directDevice ]],

424361007 |Using substance| = [[ [0..1] < 105590001 |Substance| @usingSubstance ]],

424226004 |Using device| = [[ [0..1] < 49062001 |Device|) @usingDevice]] }),

408732007 |Subject relationship context| =  410604004 |Subject of record|,

408731000 |Temporal context| =  410512000 |Current or specified time|,

408730004 |Procedure context| = [[ [0..1] @procedureContext ]] }

  • FHIR Structure Definition

SCT_ProcedureTemplate: SNOMEDCTExpressionTemplate

findingWithExplicitContext [1]: CodeableConcept

RGa [1..2]: RelationshipGroupElement

associatedFinding [1]: CodeableConcept

RGb [0..1]: RelationshipGroupElement

severity [0..1]: CodeableConcept

findingSite [0..1]: CodeableConcept

subjectRelationship [1]: CodeableConcept = 410604004 |Subject of record|

temporalContext [1]: CodeableConcept

findingContext [1]: CodeableConcept

 

4

Template Syntax - FHIR Mapping Example

 

STEP 2 - Define Mapping Rules from Source Structure (FHIR Resource) to Target Structure (SNOMED CT Expression Template)

SOURCE STRUCTURE

Condition: Resource

code [1]: CodeableConcept (coding [1..*] - system, version, code, display, userSelected [0..1] - text [0..1])

category [0..1]: CodeableConcept (values: complaint | symptom | finding | diagnosis)

clinicalStatus [0..1]: code (values: active | relapse | remission | resolved)

verificationStatus [1]: code (values: provisional | differential | confirmed | refuted | entered-in-error | unknown)

severity [0..1]: CodeableConcept

bodySite [0..*]: CodeableConcept

TARGET STRUCTURE

SCT_ConditionTemplate: SNOMEDCTExpressionTemplate

findingWithExplicitContext [1]: CodeableConcept

RGa [1..2]: RelationshipGroupElement

associatedFinding [1]: CodeableConcept

RGaa [0..1]: RelationshipGroupElement

severity [0..1]: CodeableConcept

findingSite [0..1]: CodeableConcept

subjectRelationship [1]: CodeableConcept = 410604004 |Subject of record|

temporalContext [1]: CodeableConcept

findingContext [1]: CodeableConcept

RULES

rule_1: for  source.code as code where verificationStatus != "entered-in-error" then {

rule_1a: for code where code in descendantsOf (404684003 |Clinical finding|) make target.findingWithExplicitContext = 413350009 |Finding with explicit context|, target.RGa as rga then {

rule_1aa: for code make rga.associatedFinding = code

rule_1ab: for code where severity in descendantsOf (272141005 | Severities|) OR findingSite in descendantsOf (123037004 |Body structure|) make rga.RGb as rgb then {

rule_1aba: for source.severity as sev where severity in descendantsOf (272141005 | Severities|) make rgb.severity = sev

rule_1abb: for source.bodySite as bs where findingSite in descendantsOf (123037004 |Body structure|) make rgb.findingSite = bs }

rule_1ac: for code make rga.subjectRelationship = 410604004 |Subject of record|

rule_1ad: for code make rga.temporalContext = 410512000 |Current or specified time|

rule_1ae: for source.clinicalStatus as cs, source.verificationStatus as vs  make rga.findingContext as fc then {

rule_1aea: for vs make fc.coding as coding then {

rule_1aeaa: for vs make coding.code = translate ((clinicalStatus,verificationStatus), 'status-to-findingContext-map', code)

rule_1aeab: for vs make code.system = "http://snomed.info/"

rule_1aeac: for vs make code.display = preferredTerm (en-us, coding.code) }

} }

  rule_1b: for code where code in descendantsOf (413350009 |Finding with explicit context|) make target.findingWithExplicitContext = code then {

rule_1ba:

} }

 

5

Template Syntax - Details

@Former user (Deleted)

  • Optionality

    • Optional refinements

    • Optional groups

  • Names

    • Naming refinements

    • Naming groups

  • References

    • References to location of values

Condition

[[ [1..1] @findingWithExplicitContext ]]:

#[1..2] @RGa { 246090004 |Associated finding| = ([[ [0..1] @associatedFinding ]]:

#[0..1] @RGb { 246112005 |Severity| = [[ [0..1] @severity]],

363698007 |Finding site| = [[ [0..1] @findingSite]] })

408732007 |Subject relationship context| = 410604004 |Subject of record|,

408731000 |Temporal context| = [[ [1..1] @temporalContext ]],

408729009 |Finding context| = [[ [1..1] @findingContext ]] }

AllergyIntolerance

[[ [1..1] @findingWithExplicitContext ]]:

#[0..2] @RGa { 246090004 |Associated finding| = ([[ [1..1] @associatedFinding ]]:

370135005  |Pathological process| = [[ [0..1] @pathologicalProcess ]], 

#[0..1] @RGb { 255234002 |After| = [[ [0..1] @after ]], 

246075003 |Causative agent| = [[ [1..1] @causativeAgent ]] }) 

408732007 |Subject relationship context| = 410604004 |Subject of record|, 

408731000 |Temporal context| = [[ [1..1] @temporalContext ]], 

408729009 |Finding context| = [[ [1..1] @findingContext ]] }

Procedure

129125009 |Procedure with explicit context|

#[1..1] @RGa { 363589002 |Associated procedure| = ([[ [1..1] @associatedProcedure ]] :

#[0..1] @RGb { 363704007 |Procedure site| = [[ [0..1] @procedureSite ]],

363699004 |Direct device| =  [[ [0..1] @directDevice ]],

424361007 |Using substance| = [[ [0..1] < 105590001 |Substance| @usingSubstance ]],

424226004 |Using device| = [[ [0..1] < 49062001 |Device|) @usingDevice]] }),

408732007 |Subject relationship context| =  410604004 |Subject of record|,

408731000 |Temporal context| =  410512000 |Current or specified time|,

408730004 |Procedure context| = [[ [0..1] @procedureContext ]] }

 

6

Confirm next meeting date/time

@Former user (Deleted)

 

Confirm date and time of next SLPG meeting - Wednesday 6th July, 20:00 UTC

 

Meeting Files

  File Modified
No files shared here yet.

Copyright © 2025, SNOMED International