Summary
This practical guide outlines key requirements for enabling effective access to SNOMED CT and illustrates some of the options for meeting these requirements using a freely available SQL database. The rationale for using SQL as an illustrative example is that this is a widely understood way to access structured data that can be readily applied to SNOMED CT release files.
The approaches and options documented in the guide provide working examples of some essential SNOMED CT terminology services. However, the primary purpose of these examples is to enhance understanding and not to recommend SQL as a way to deliver large scale versions of these services. A range of more advanced technologies, including those used in SNOMED International Tools, are able to deliver more scalable implementations of the required services.
SNOMED International also provides a range of tools that enable access to SNOMED CT content. These include a SNOMED CT Browser through which to explore the terminology, a FHIR Terminology Server and a range of other open source tools that enable programmatic access to terminology content. For further details see SNOMED International Tools or visit the SNOMED International GitHub repository to access open source projects supporting a range of terminology service requirements.
Background
SNOMED CT is made available to licensees as a package of tab-delimited text files. The format of these files is specified in the Release File Specification (Sections 4 Component Release Files Specification and 5. Reference Set Types). These release files provide a standard way to distribute SNOMED CT content and derivatives but they do not offer a direct way to provide user-friendly access to the terminology.
This guide documents a worked SQL example that loads the SNOMED CT release files into a database designed to enable practical access to terminology content. This worked example enables exploration of the types of terminology required for effective delivery of terminology services.
Purpose
The primary purpose of this document is to enhance understanding of the logical design and release file structure of SNOMED CT and to provide practical ways to access the key features of SNOMED CT in a widely understood programming language. For more scalable and performant approaches to implementing SNOMED CT please visit SNOMED International's Github repository - e.g. https://github.com/IHTSDO.
For more details on the purpose of the document see Section 2. Objectives, Audiences and Uses.
Limitations
- The programming code that this guide contains and/or refers to is only made available to provide illustrative examples of key points related to the design, accessibility and use of SNOMED CT.
- It is licensed under the Apache 2 licence and is not certified to be suitable for use in a production system.
- The code has been developed to work in a freely available open source relational database (MySQL - https://www.mysql.com) to make it accessible to all SNOMED CT licensees without imposing additional costs.
- The code may need modification to work in other database environments.
- Other database environments may also support additional features which enable alternative approaches not described in this guide.
- The use of SQL in this example is intended to enhance understanding of the structure and does not imply that SQL is recommended for use production systems that deliver terminology services.
Feedback