Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Agenda and Meeting Notes

ItemDescriptionOwnerNotesAction

1

Welcome, introductions and apologiesLinda Bird

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

 

2Agenda reviewLinda Bird

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

 

3Template Syntax - FHIR Example TemplatesLinda BirdCondition

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 ]] }

AllergyIntolerance

  • 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] @RG1 @RGa { 246090004 |Associated finding| = ([[ [1..1] @associatedFinding ]]:

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

 #[0..1] @RG2 @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

  • 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] @RG1 @RGa { 363589002 |Associated procedure| = ( [[ [1..1] @associatedProcedure ]] :

 #[0..1] @RG2 @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

 

4Template 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]: RoleGroupElementRelationshipGroupElement

associatedFinding [0..1]: CodeableConcept

RGb RGaa [0..1]: RoleGroupElementRelationshipGroupElement

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 whereverificationStatus != "entered-in-error" make target.findingWithExplicitContext as fwec then {

rule_1a: for code wherecode 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 whereseverity in descendantsOf (272141005 | Severities|) OR findingSite in descendantsOf (123037004 |Body structure|) make rga.RGb as rgb then {

rule_1aba: forsource.severity as sev whereseverity 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:

 

}

}

 
5Template Syntax - DetailsLinda Bird
  • 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 ]] }

 
6Confirm next meeting date/timeLinda Bird

 

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

 

Meeting Files

Attachments