Date & Time
Wednesday 22nd June 2016, 20:00 UTC
GoToMeeting Details
Goals
- To progress the SNOMED CT Template Syntax
Attendees
- Chair: Linda Bird
- Project Group: Daniel Karlsson, Alejandro Lopez Osornio, Ed Cheetham, Brian Carlsen, Rob Hausam
Agenda and Meeting Notes
Item | Description | Owner | Notes | Action |
---|---|---|---|---|
1 | Welcome, introductions and apologies | Linda Bird | SLPG meetings will be recorded and recordings will be accessible to SLPG members. |
|
2 | Agenda review | Linda Bird | Review agenda for today's meeting
|
|
3 | Template Syntax - FHIR Example Templates | Linda Bird | STEP 1 - Convert SNOMED CT Expression Template into FHIR Structure Definition (for use as Target of Mapping) CONDITION RESOURCE
[[ [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 ]] }
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
[[ [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 ]] }
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
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 ]] }
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 | Linda Bird |
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 | Linda Bird
| Confirm date and time of next SLPG meeting - Wednesday 6th July, 20:00 UTC |
|
Meeting Files
1 Comment
Linda Bird
As promised - here are some questions relating to 'SNOMED CT Expression Templates' to think about (and respond to) prior to our next meeting ....
If you have any additional questions (or answers), please post these as well.
Thanks! Next meeting is Wednesday 6th July.
Linda.