This wiki has undergone a migration to Confluence found Here

Difference between revisions of "201901 Terminology Services"

From HL7Wiki
Jump to navigation Jump to search
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[http://wiki.hl7.org/index.php?title=FHIR_Connectathon_20 Return to Connectathon 20 page]
 
[http://wiki.hl7.org/index.php?title=FHIR_Connectathon_20 Return to Connectathon 20 page]
 +
 
[http://wiki.hl7.org/index.php?title=Category:201901_FHIR_Connectathon_Track_Proposals Return to Jan 2019 Proposals]
 
[http://wiki.hl7.org/index.php?title=Category:201901_FHIR_Connectathon_Track_Proposals Return to Jan 2019 Proposals]
  
Line 12: Line 13:
 
==Justification==
 
==Justification==
 
<!--Why is this an important track to include in the connectathon - include implementer need, impact on ballot, FMM readiness of the resources, etc. -->
 
<!--Why is this an important track to include in the connectathon - include implementer need, impact on ballot, FMM readiness of the resources, etc. -->
The FHIR specification includes support for the provision of a [http://hl7.org/fhir/2018Sep/terminology-service.html terminology service] - that is, a service that lets healthcare applications make use of codes and value sets without having to become experts in the fine details of the value sets and underlying code systems and their related resources.  The management and proper use of terminology is fundamental to effective, interoperable data exchange, so this is an important capability to provide and test in the Connectathons.
+
The FHIR specification includes support for the provision of a [http://hl7.org/fhir/terminology-service.html terminology service] - that is, a service that lets healthcare applications make use of codes and value sets without having to become experts in the fine details of the value sets and underlying code systems and their related resources.  The management and proper use of terminology is fundamental to effective, interoperable data exchange, so this is an important capability to provide and test in the Connectathons.
  
 
[https://fhirblog.com/2016/09/16/terminology-services/ David Hay's blog post on Terminology Services]
 
[https://fhirblog.com/2016/09/16/terminology-services/ David Hay's blog post on Terminology Services]
Line 25: Line 26:
 
<!-- Name, email and Skype id of individual who will coordinate the track at the connectathon -->
 
<!-- Name, email and Skype id of individual who will coordinate the track at the connectathon -->
 
See [[Connectathon_Track_Lead_Responsibilities]]
 
See [[Connectathon_Track_Lead_Responsibilities]]
[mailto:rrhausam@gmail.com Rob Hausam], [mailto:pkjordan@xtra.co.nz Peter Jordan]
+
 
 +
[mailto:rrhausam@gmail.com Rob Hausam]
 +
 
 +
[mailto:pkjordan@xtra.co.nz Peter Jordan]
  
 
==Track Administration==
 
==Track Administration==
Connectathon Management Tool: [http://conman.fhir.org/connectathon.html?event=baltimore2018 ConMan: WGM Baltimore September 2018]
+
Connectathon Management Tool: [http://conman.fhir.org/connectathon.html?event=sanant2019 ConMan: WGM San Antonio January 2019]
  
 
Messaging & Communications: [https://chat.fhir.org/#narrow/stream/connectathon.20mgmt/topic/Terminology.20Services.20Track Zulip Chat Stream]
 
Messaging & Communications: [https://chat.fhir.org/#narrow/stream/connectathon.20mgmt/topic/Terminology.20Services.20Track Zulip Chat Stream]
Line 40: Line 44:
 
==Expected participants==
 
==Expected participants==
 
<!-- List of the individuals and/or organizations that have indicated a desire to attend the connectathon and implement this track -->
 
<!-- List of the individuals and/or organizations that have indicated a desire to attend the connectathon and implement this track -->
*[http://test.fhir.org/r4 Health Intersections - FHIR Server]
+
*[https://sandbox1.hddaccess.com/ 3M HDD FHIR Terminology Sandbox server]
 
*[https://touchstone.aegis.net/touchstone AEGIS - Touchstone tool and test scripts]
 
*[https://touchstone.aegis.net/touchstone AEGIS - Touchstone tool and test scripts]
 
*Apelon (Terminology Service): http://fhir.ext.apelon.com:7080/dts/fhir/ and Demo Page at http://fhir.ext.apelon.com:7080/DtsOnFhirDemo/logon/Logon.action
 
*Apelon (Terminology Service): http://fhir.ext.apelon.com:7080/dts/fhir/ and Demo Page at http://fhir.ext.apelon.com:7080/DtsOnFhirDemo/logon/Logon.action
 
**Through a collaboration with the American Medical Association, the Current Procedural Terminology (CPT®) is now available for use in FHIR development efforts through the Apelon DTS on FHIR® service. Authentication is required. Please send an email to support@apelon.com (or on-site to cmacumber@apelon.com) for a user/pass. Please note that use of CPT® for production or commercial purposes through this service is prohibited.*
 
**Through a collaboration with the American Medical Association, the Current Procedural Terminology (CPT®) is now available for use in FHIR development efforts through the Apelon DTS on FHIR® service. Authentication is required. Please send an email to support@apelon.com (or on-site to cmacumber@apelon.com) for a user/pass. Please note that use of CPT® for production or commercial purposes through this service is prohibited.*
 +
*[https://ontoserver.csiro.au/stu3-latest CSIRO Australia - Ontoserver]
 +
*[http://fhir.hausamconsulting.com/ Hausam Consulting test server]
 +
*[http://test.fhir.org/r4 Health Intersections - FHIR Server]
 +
*[[Health Language FHIR terminology  services]]
 +
*[https://fhirconnectathon.e-imo.com/ IMO - FHIR services on FHIR R4]
 
*Lantana - FHIR services on Trifolia
 
*Lantana - FHIR services on Trifolia
*[https://ontoserver.csiro.au/stu3-latest CSIRO Australia - Ontoserver]
 
 
*[[NLM - FHIR services on VSAC]]
 
*[[NLM - FHIR services on VSAC]]
*[https://fhirconnectathon.e-imo.com/ IMO - FHIR services on FHIR R4]
 
 
*[http://its.patientsfirst.org.nz/RestService.svc/Terminz Patients First NZ Terminology Server]
 
*[http://its.patientsfirst.org.nz/RestService.svc/Terminz Patients First NZ Terminology Server]
*[[Health Language FHIR terminology  services]]
+
*[https://jade.phast.fr/resources-server/api/fhir PHAST Standard Terminology Services]
*[http://fhir.hausamconsulting.com/ Hausam Consulting test server]
 
*[http://jade.phast.fr/FHIR_CONNECTATHON/api/Fhir/ PHAST Standard Terminology Services]
 
  
 
*Additional servers and clients
 
*Additional servers and clients
Line 60: Line 65:
 
===FHIR Terminology Server===
 
===FHIR Terminology Server===
 
<!-- Provide a description of the capabilities this role will have within the connectathon -->
 
<!-- Provide a description of the capabilities this role will have within the connectathon -->
For service providers, implement the following operations from http://hl7.org/fhir/2018Sep/terminology-service.html:
+
For service providers, implement the following operations from http://hl7.org/fhir/terminology-service.html:
* $expand - [http://hl7.org/fhir/2018Sep/valueset-operations.html#expand Value Set Expansion]
+
* $expand - [http://hl7.org/fhir/valueset-operation-expand.html Value Set Expansion]
* $validate-code - [http://hl7.org/fhir/2018Sep/valueset-operations.html#validate-code Value Set Validation]
+
* $validate-code - [http://hl7.org/fhir/valueset-operation-validate-code.html Value Set Validation]
* $lookup - [http://hl7.org/fhir/2018Sep/codesystem-operations.html#lookup Concept Lookup]
+
* $lookup - [http://hl7.org/fhir/codesystem-operation-lookup.html Concept Lookup]
* $validate-code - [http://hl7.org/fhir/2018Sep/codesystem-operations.html#validate-code Code System Validation]
+
* $validate-code - [http://hl7.org/fhir/codesystem-operation-validate-code.html Code System Validation]
* $subsumes - [http://hl7.org/fhir/2018Sep/codesystem-operations.html#subsumes Subsumption Testing]
+
* $subsumes - [http://hl7.org/fhir/codesystem-operation-subsumes.html Subsumption Testing]
* $translate - [http://hl7.org/fhir/2018Sep/conceptmap-operations.html#translate Concept Translation]
+
* $translate - [http://hl7.org/fhir/conceptmap-operation-translate.html Concept Translation]
* $closure - [http://hl7.org/fhir/2018Sep/conceptmap-operations.html#closure Maintaining a Closure Table]
+
* $closure - [http://hl7.org/fhir/conceptmap-operation-closure.html Maintaining a Closure Table]
 
Support additional capabilities:
 
Support additional capabilities:
* Capability Statement [http://hl7.org/fhir/2018Sep/capabilitystatement-terminology-server.html Produce a Terminology Service Capability Statement]
+
* Capability Statement [http://hl7.org/fhir/capabilitystatement-terminology-server.html Produce a Terminology Service Capability Statement]
* SNOMED CT and LOINC implicit value sets - [http://hl7.org/fhir/2018Sep/snomedct.html using SNOMED CT with FHIR] and [http://hl7.org/fhir/2018Sep/loinc.html using LOINC with FHIR]
+
* SNOMED CT and LOINC implicit value sets - [http://hl7.org/fhir/snomedct.html using SNOMED CT with FHIR] and [http://hl7.org/fhir/loinc.html using LOINC with FHIR]
* $find-matches - [http://hl7.org/fhir/2018Sep/codesystem-operations.html#find-matches Finding codes based on supplied properties (experimental)]
+
* $find-matches - [http://hl7.org/fhir/codesystem-operation-find-matches.html Finding codes based on supplied properties (experimental)]
  
 
Service providers are not required to implement all of this functionality - it's a lot to do. For new implementers, start at the top and work down (generally).
 
Service providers are not required to implement all of this functionality - it's a lot to do. For new implementers, start at the top and work down (generally).
Line 89: Line 94:
 
At least one server supports all of these operations and capabilities (http://test.fhir.org/r4). Other servers, including the Apelon server (http://fhir.ext.apelon.com/dtsserverws/fhir) and the others listed above will support several of these operations and capabilities. For a list of functions supported by the Apelon Server, see the demo web app (http://fhir.ext.apelon.com/DtsOnFhirDemo, uid/pwd dtsadminuser/dtsadmin).
 
At least one server supports all of these operations and capabilities (http://test.fhir.org/r4). Other servers, including the Apelon server (http://fhir.ext.apelon.com/dtsserverws/fhir) and the others listed above will support several of these operations and capabilities. For a list of functions supported by the Apelon Server, see the demo web app (http://fhir.ext.apelon.com/DtsOnFhirDemo, uid/pwd dtsadminuser/dtsadmin).
  
==Pre-Requisites==
+
==Prerequisites==
  
'''For all levels of testing the required pre-requisite is the fundamental requirement that all FHIR servers ''SHALL'' support the [http://hl7.org/fhir/2018May/http.html#capabilities capabilities] interaction.'''
+
'''For all levels of testing the required pre-requisite is the fundamental requirement that all FHIR servers ''SHALL'' support the [http://hl7.org/fhir/http.html#capabilities capabilities] interaction.'''
  
 
The FHIR Terminology Servers under test are expected to have already downloaded and installed the required resources (Code Systems, Value Sets & Concept Maps).
 
The FHIR Terminology Servers under test are expected to have already downloaded and installed the required resources (Code Systems, Value Sets & Concept Maps).
  
==Test Scripts==
+
==Scenarios==
 +
<!-- What will be the actions performed by participants? -->
 +
===Level 1 - Introduction to Terminology===
 +
 
 +
This has been and will remain a primary purpose of this track and provides a 'friendly introduction' for those new to Terminology Track in FHIR. Attendees participate in this track using a simple scenario that can be met with limited domain knowledge. It is quite feasible to complete the client side terminology interaction of the track within a day with only knowledge of a development environment and some previous FHIR knowledge (such as Patient). If creating a server, advanced preparation will be required.
 +
 
 +
Pre-connectathon testing is encouraged, but not required, where the participants can utilize the publically-available FHIR Terminology Servers listed above.
 +
 
 +
Testing and test reporting at the Connectathon event will be self-attested using ConMan and primarily involves peer-to-peer execution between known FHIR clients and/or servers.
 +
 
 +
===Level 2 - Formal Testing of Terminology - Participants with FHIR experience===
 +
 
 +
This level introduces a more formalized testing approach for those participants that have been working the FHIR Terminology specification and wish to move beyond basic testing and may have systems that are in active development, deployed or soon to be deployed into a production environment. Automated testing tooling is significantly leveraged for both automated terminology server testing (testing tool to FHIR terminology server) and surveillance of peer-to-peer testing (external FHIR client to external FHIR server).
 +
 
 +
Pre-connectathon testing is highly encouraged in order to be better prepared for the actual Connectathon event and to become familiar with the public testing platforms that will be used for the formal testing.
 +
 
 +
Testing and test reporting will be done using the public testing platforms which will provide test results via the new FHIR [http://hl7.org/fhir/testreport.html TestReport] resource type as well as any specific reporting capabilities of those testing platforms. These reports will provide qualitative and quantitative analysis of the system under test and its conformance to the FHIR specification.
  
 +
==TestScript(s)==
 +
<!-- Optional (for initial proposal): Provide links to the TestScript instance(s) that define the behavior to be tested. 
 +
These should be committed to SVN under trunk/connectathons/[connectathon]
 +
-->
 
This track includes formal testing and reporting of test results utilizing a defined set of test scripts.
 
This track includes formal testing and reporting of test results utilizing a defined set of test scripts.
 
   
 
   
Line 106: Line 131:
 
* [https://github.com/FHIR/documents/blob/master/connectathons/SanDiegoSep2017/Connectathon16/Terminology-Formal/FHIR%20Connectathon%2016%20Terminology%20Formal%20Tests.xlsx Terminology Test Definition Spreadsheet] - Example proposals for Terminology tests (positive and negative) from the Connectathon 16 event held in San Diego
 
* [https://github.com/FHIR/documents/blob/master/connectathons/SanDiegoSep2017/Connectathon16/Terminology-Formal/FHIR%20Connectathon%2016%20Terminology%20Formal%20Tests.xlsx Terminology Test Definition Spreadsheet] - Example proposals for Terminology tests (positive and negative) from the Connectathon 16 event held in San Diego
  
==Scenarios==
+
===Available Test Script Sets===
<!-- What will be the actions performed by participants? -->
+
 
 +
The test scripts listed below will be updated for Connectathon 20 and scripts for additional tests will be added.
 +
 
 +
====Test Scripts - Supported Formats====
 +
 
 +
* JSON - TestScripts and fixtures are available under the '''JSON Format''' folder
 +
* XML - TestScripts and fixtures are available under the '''XML Format''' folder
 +
 
 +
====Test Scripts - ValueSet Expand - $expand====
 +
 
 +
* '''connectathon-20-ts-expand''' - Terminology tests for $expand where the FHIR server is expected to have the existing ValueSet resources for extensional and intensional test cases.
 +
* '''connectathon-20-ts-expand-filter''' - Terminology tests for $expand with filter options where the FHIR server is expected to have the existing ValueSet resources for extensional and intensional test cases.
 +
 
 +
====Test Scripts - CodeSystem Lookup - $lookup====
 +
 
 +
* '''connectathon-20-ts-lookup-loinc-01-ok-get-simple''' - CodeSystem $lookup simple tests against known LOINC codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-lookup-loinc-02-ok-post-code-simple''' - CodeSystem $lookup simple tests against known LOINC codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system and code.
 +
* '''connectathon-20-ts-lookup-loinc-03-ok-post-coding-simple''' - CodeSystem $lookup simple tests against known LOINC codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of coding.
 +
* '''connectathon-20-ts-lookup-sct-01-ok-get-simple''' - CodeSystem $lookup simple tests against known SNOMED codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-lookup-sct-02-ok-post-code-simple''' - CodeSystem $lookup simple tests against known SNOMED codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system and code.
 +
* '''connectathon-20-ts-lookup-sct-03-ok-post-coding-simple''' - CodeSystem $lookup simple tests against known SNOMED codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of coding.
 +
 
 +
====Test Scripts - CodeSystem Subsumes - $subsumes====
 +
 
 +
* '''connectathon-20-ts-subsumes-snomed-01-ok-get''' - $subsumes tests against known SNOMED codes where the expected outcome is a successful response with a valid outcome code value. All $subsumes operations are performed using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-subsumes-snomed-02-ok-post-code''' - $subsumes tests against known SNOMED codes where the expected outcome is a successful response with a valid outcome code value. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
 +
* '''connectathon-20-ts-subsumes-snomed-03-ok-post-coding''' - $subsumes tests against known SNOMED codes where the expected outcome is a successful response with a valid outcome code value. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.
 +
* '''connectathon-20-ts-subsumes-snomed-04-notok-get''' - $subsumes tests against known and unknown SNOMED codes where the expected outcome is a ''failure'' response with a returned OperationOutcome. All $subsumes operations are performed using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-subsumes-snomed-05-notok-post-code''' - $subsumes tests against known and unknown SNOMED codes where the expected outcome is a ''failure'' response with a returned OperationOutcome. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
 +
* '''connectathon-20-ts-subsumes-snomed-06-notok-post-coding''' - $subsumes tests against known and unknown SNOMED codes where the expected outcome is a ''failure'' response with a returned OperationOutcome. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.
 +
 
 +
====Test Scripts - CodeSystem Translate - $translate====
 +
 
 +
* '''connectathon-20-ts-translate-01-ok-get''' -  $translate tests against known FHIR code systems where the expected outcome is a successful response with a matched code value from the target system. All $translate operations are performed using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-translate-02-ok-post-code''' -  $translate tests against known FHIR code systems where the expected outcome is a successful response with a matched code value from the target system. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
 +
* '''connectathon-20-ts-translate-03-ok-post-coding''' -  $translate tests against known FHIR code systems where the expected outcome is a successful response with a matched code value from the target system. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.
 +
* '''connectathon-20-ts-translate-04-notok-get''' -  $translate tests against known and unknown FHIR code systems where the expected outcome is a ''failure'' response with a returned OperationOutcome. All $translate operations are performed using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-translate-05-notok-post-code''' -  $translate tests against known and unknown FHIR code systems where the expected outcome is a ''failure'' response with a returned OperationOutcome. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
 +
* '''connectathon-20-ts-translate-06-notok-post-coding''' -  $translate tests against known and unknown FHIR code systems where the expected outcome is a ''failure'' response with a returned OperationOutcome. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.
 +
 
 +
====Test Scripts - CodeSystem Validate Code - $validate-code====
  
===Scenario Step 1 Name===
+
* '''connectathon-20-ts-validate-cs-loinc-01-ok-get''' - $validate-code tests against known LOINC codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP GET method.
:Action: <!--Who does what?  (Use the role names listed above when referring to the participants -->
+
* '''connectathon-20-ts-validate-cs-loinc-02-ok-post-code''' - $validate-code tests against known LOINC codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
:Precondition: <!-- What setup is required prior to executing this step? -->
+
* '''connectathon-20-ts-validate-cs-loinc-02-ok-post-coding''' - $validate-code tests against known LOINC codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
:Success Criteria: <!-- How will the participants know if the test was successful? -->
+
* '''connectathon-20-ts-validate-cs-loinc-04-notok-get''' - $validate-code tests against known LOINC codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP GET method.
:Bonus point: <!-- Any additional complexity to make the scenario more challenging -->
+
* '''connectathon-20-ts-validate-cs-loinc-05-notok-post-code''' - $validate-code tests against known LOINC codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
 +
* '''connectathon-20-ts-validate-cs-loinc-06-notok-post-coding''' - $validate-code tests against known LOINC codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
 +
* '''connectathon-20-ts-validate-cs-sct-01-ok-get''' - $validate-code tests against known SNOMED-CT codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-validate-cs-sct-02-ok-post-code''' - $validate-code tests against known SNOMED-CT codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
 +
* '''connectathon-20-ts-validate-cs-sct-02-ok-post-coding''' - $validate-code tests against known SNOMED-CT codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
 +
* '''connectathon-20-ts-validate-cs-sct-04-notok-get''' - $validate-code tests against known SNOMED-CT codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP GET method.
 +
* '''connectathon-20-ts-validate-cs-sct-05-notok-post-code''' - $validate-code tests against known SNOMED-CT codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
 +
* '''connectathon-20-ts-validate-cs-sct-06-notok-post-coding''' - $validate-code tests against known SNOMED-CT codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
  
<!-- Provide a description of each task -->
+
====Test Scripts - ValueSet Validate Code - $validate-code====
  
==TestScript(s)==
+
* '''connectathon-20-ts-validate-code''' - $validate-code tests where the FHIR Terminology server is expected to have the LOINC and SNOMED-CT code systems available.
<!-- Optional (for initial proposal): Provide links to the TestScript instance(s) that define the behavior to be tested.
+
* '''connectathon-20-ts-validate-code-optional''' - $validate-code tests with optional invocations where the FHIR Terminology server is expected to have the LOINC and SNOMED-CT code systems available.
These should be committed to SVN under trunk/connectathons/[connectathon]
 
-->
 
  
 
==Security and Privacy Considerations==
 
==Security and Privacy Considerations==
Line 131: Line 201:
 
I am happy to help: JohnMoehrke@gmail.com -- security co-chair
 
I am happy to help: JohnMoehrke@gmail.com -- security co-chair
 
-->
 
-->
 +
Authentication is required for access to some terminology servers and service endpoints, and the specific requirements are determined by the individual server implementations.

Latest revision as of 11:46, 5 May 2019

Return to Connectathon 20 page

Return to Jan 2019 Proposals

Terminology Services

Submitting WG/Project/Implementer Group

Vocabulary WG/FMG

Justification

The FHIR specification includes support for the provision of a terminology service - that is, a service that lets healthcare applications make use of codes and value sets without having to become experts in the fine details of the value sets and underlying code systems and their related resources. The management and proper use of terminology is fundamental to effective, interoperable data exchange, so this is an important capability to provide and test in the Connectathons.

David Hay's blog post on Terminology Services

Clinical input requested

Related tracks

Proposed Track Lead

See Connectathon_Track_Lead_Responsibilities

Rob Hausam

Peter Jordan

Track Administration

Connectathon Management Tool: ConMan: WGM San Antonio January 2019

Messaging & Communications: Zulip Chat Stream

Test Support: Richard Ettema

Orientation Slides: Terminology Services Track Orientation Slides

Orientation Recording: Click here to play recording

Expected participants

  • Additional servers and clients

Roles

Please include information here regarding how much advance preparation will be required if creating a client and/or server.

FHIR Terminology Server

For service providers, implement the following operations from http://hl7.org/fhir/terminology-service.html:

Support additional capabilities:

Service providers are not required to implement all of this functionality - it's a lot to do. For new implementers, start at the top and work down (generally).

FHIR Terminology Client Consumer

Implement any one or more of:

  • Do a value set expansion of one of the value sets in the spec
  • Validate a code using the spec against a FHIR value set, a v2 value set, LOINC or SNOMED CT
  • Validate a code using the spec against a code system such as LOINC or SNOMED CT
  • Look up a display for a code (most appropriate for v2/FHIR conversion)
  • Translate a code from one value set to another, based on the existing value set and ConceptMap resources, and/or other additional knowledge available to the server
  • Maintain a client-side closure table based on server-side terminological logic
  • References to SNOMED CT and LOINC implicit value sets
  • Create (POST, PUT) ValueSet resources referencing in-line and/or external code systems

At least one server supports all of these operations and capabilities (http://test.fhir.org/r4). Other servers, including the Apelon server (http://fhir.ext.apelon.com/dtsserverws/fhir) and the others listed above will support several of these operations and capabilities. For a list of functions supported by the Apelon Server, see the demo web app (http://fhir.ext.apelon.com/DtsOnFhirDemo, uid/pwd dtsadminuser/dtsadmin).

Prerequisites

For all levels of testing the required pre-requisite is the fundamental requirement that all FHIR servers SHALL support the capabilities interaction.

The FHIR Terminology Servers under test are expected to have already downloaded and installed the required resources (Code Systems, Value Sets & Concept Maps).

Scenarios

Level 1 - Introduction to Terminology

This has been and will remain a primary purpose of this track and provides a 'friendly introduction' for those new to Terminology Track in FHIR. Attendees participate in this track using a simple scenario that can be met with limited domain knowledge. It is quite feasible to complete the client side terminology interaction of the track within a day with only knowledge of a development environment and some previous FHIR knowledge (such as Patient). If creating a server, advanced preparation will be required.

Pre-connectathon testing is encouraged, but not required, where the participants can utilize the publically-available FHIR Terminology Servers listed above.

Testing and test reporting at the Connectathon event will be self-attested using ConMan and primarily involves peer-to-peer execution between known FHIR clients and/or servers.

Level 2 - Formal Testing of Terminology - Participants with FHIR experience

This level introduces a more formalized testing approach for those participants that have been working the FHIR Terminology specification and wish to move beyond basic testing and may have systems that are in active development, deployed or soon to be deployed into a production environment. Automated testing tooling is significantly leveraged for both automated terminology server testing (testing tool to FHIR terminology server) and surveillance of peer-to-peer testing (external FHIR client to external FHIR server).

Pre-connectathon testing is highly encouraged in order to be better prepared for the actual Connectathon event and to become familiar with the public testing platforms that will be used for the formal testing.

Testing and test reporting will be done using the public testing platforms which will provide test results via the new FHIR TestReport resource type as well as any specific reporting capabilities of those testing platforms. These reports will provide qualitative and quantitative analysis of the system under test and its conformance to the FHIR specification.

TestScript(s)

This track includes formal testing and reporting of test results utilizing a defined set of test scripts.

The TestScript and terminology content resources will be committed to the FHIR documents Github repository at: FHIR/documents/tree/master/connectathons Please contact Grahame Grieve if you require commit privileges to this repository; otherwise, you may forward your TestScripts and related artifacts to Richard Ettema who will get them committed.

Additional Resources:

Available Test Script Sets

The test scripts listed below will be updated for Connectathon 20 and scripts for additional tests will be added.

Test Scripts - Supported Formats

  • JSON - TestScripts and fixtures are available under the JSON Format folder
  • XML - TestScripts and fixtures are available under the XML Format folder

Test Scripts - ValueSet Expand - $expand

  • connectathon-20-ts-expand - Terminology tests for $expand where the FHIR server is expected to have the existing ValueSet resources for extensional and intensional test cases.
  • connectathon-20-ts-expand-filter - Terminology tests for $expand with filter options where the FHIR server is expected to have the existing ValueSet resources for extensional and intensional test cases.

Test Scripts - CodeSystem Lookup - $lookup

  • connectathon-20-ts-lookup-loinc-01-ok-get-simple - CodeSystem $lookup simple tests against known LOINC codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-lookup-loinc-02-ok-post-code-simple - CodeSystem $lookup simple tests against known LOINC codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system and code.
  • connectathon-20-ts-lookup-loinc-03-ok-post-coding-simple - CodeSystem $lookup simple tests against known LOINC codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of coding.
  • connectathon-20-ts-lookup-sct-01-ok-get-simple - CodeSystem $lookup simple tests against known SNOMED codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-lookup-sct-02-ok-post-code-simple - CodeSystem $lookup simple tests against known SNOMED codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system and code.
  • connectathon-20-ts-lookup-sct-03-ok-post-coding-simple - CodeSystem $lookup simple tests against known SNOMED codes where the expected outcome is a successful response with valid name and display value. All $lookup operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of coding.

Test Scripts - CodeSystem Subsumes - $subsumes

  • connectathon-20-ts-subsumes-snomed-01-ok-get - $subsumes tests against known SNOMED codes where the expected outcome is a successful response with a valid outcome code value. All $subsumes operations are performed using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-subsumes-snomed-02-ok-post-code - $subsumes tests against known SNOMED codes where the expected outcome is a successful response with a valid outcome code value. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
  • connectathon-20-ts-subsumes-snomed-03-ok-post-coding - $subsumes tests against known SNOMED codes where the expected outcome is a successful response with a valid outcome code value. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.
  • connectathon-20-ts-subsumes-snomed-04-notok-get - $subsumes tests against known and unknown SNOMED codes where the expected outcome is a failure response with a returned OperationOutcome. All $subsumes operations are performed using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-subsumes-snomed-05-notok-post-code - $subsumes tests against known and unknown SNOMED codes where the expected outcome is a failure response with a returned OperationOutcome. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
  • connectathon-20-ts-subsumes-snomed-06-notok-post-coding - $subsumes tests against known and unknown SNOMED codes where the expected outcome is a failure response with a returned OperationOutcome. All $subsumes operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.

Test Scripts - CodeSystem Translate - $translate

  • connectathon-20-ts-translate-01-ok-get - $translate tests against known FHIR code systems where the expected outcome is a successful response with a matched code value from the target system. All $translate operations are performed using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-translate-02-ok-post-code - $translate tests against known FHIR code systems where the expected outcome is a successful response with a matched code value from the target system. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
  • connectathon-20-ts-translate-03-ok-post-coding - $translate tests against known FHIR code systems where the expected outcome is a successful response with a matched code value from the target system. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.
  • connectathon-20-ts-translate-04-notok-get - $translate tests against known and unknown FHIR code systems where the expected outcome is a failure response with a returned OperationOutcome. All $translate operations are performed using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-translate-05-notok-post-code - $translate tests against known and unknown FHIR code systems where the expected outcome is a failure response with a returned OperationOutcome. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codeA and codeB.
  • connectathon-20-ts-translate-06-notok-post-coding - $translate tests against known and unknown FHIR code systems where the expected outcome is a failure response with a returned OperationOutcome. All $translate operations are performed using the FHIR Operation Framework HTTP POST method with Parameters of system, codingA and codingB.

Test Scripts - CodeSystem Validate Code - $validate-code

  • connectathon-20-ts-validate-cs-loinc-01-ok-get - $validate-code tests against known LOINC codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-validate-cs-loinc-02-ok-post-code - $validate-code tests against known LOINC codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
  • connectathon-20-ts-validate-cs-loinc-02-ok-post-coding - $validate-code tests against known LOINC codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
  • connectathon-20-ts-validate-cs-loinc-04-notok-get - $validate-code tests against known LOINC codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-validate-cs-loinc-05-notok-post-code - $validate-code tests against known LOINC codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
  • connectathon-20-ts-validate-cs-loinc-06-notok-post-coding - $validate-code tests against known LOINC codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
  • connectathon-20-ts-validate-cs-sct-01-ok-get - $validate-code tests against known SNOMED-CT codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-validate-cs-sct-02-ok-post-code - $validate-code tests against known SNOMED-CT codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
  • connectathon-20-ts-validate-cs-sct-02-ok-post-coding - $validate-code tests against known SNOMED-CT codes where the expected outcome is a successful response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.
  • connectathon-20-ts-validate-cs-sct-04-notok-get - $validate-code tests against known SNOMED-CT codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP GET method.
  • connectathon-20-ts-validate-cs-sct-05-notok-post-code - $validate-code tests against known SNOMED-CT codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url, code and display.
  • connectathon-20-ts-validate-cs-sct-06-notok-post-coding - $validate-code tests against known SNOMED-CT codes where the expected outcome is a failure response using the FHIR Operation Framework HTTP POST method with Parameters of url and coding.

Test Scripts - ValueSet Validate Code - $validate-code

  • connectathon-20-ts-validate-code - $validate-code tests where the FHIR Terminology server is expected to have the LOINC and SNOMED-CT code systems available.
  • connectathon-20-ts-validate-code-optional - $validate-code tests with optional invocations where the FHIR Terminology server is expected to have the LOINC and SNOMED-CT code systems available.

Security and Privacy Considerations

Authentication is required for access to some terminology servers and service endpoints, and the specific requirements are determined by the individual server implementations.