Implementing Terminology Services with SNOMED CT
A number of FHIR Terminology Service Operations have unique considerations when working with SNOMED CT
Operation Name | Resource | Considerations | Priority for implementation |
---|---|---|---|
$validate-code | ValueSet | Further discussion by the SNOMED on FHIR working group can be read here: Implementing Terminology Services with SNOMED CT | 2b |
$validate-code | CodeSystem | 2b | |
$expand | ValueSet | Implicit valuesets (Valuesets defined using ECL), filters, POST (upload) valuesets | 1 |
$lookup | CodeSystem | 2 | |
$translate | ConceptMap | 5 | |
$subsumes | CodeSystem | 3 | |
$closure | ConceptMap | 4 | |
CodeSystem | See Find Matches, however using the $expand operation with ECL will allow for more expressive querying. | 6 |
Best Practice Discussions
Paging - note that the $expand operation defines its own offset and count (count be 0 if you're interested in the total number of matches)
Limits on value set sizes - 1M configurable limit, default page size of 1K
Default language considerations - http headers, server settings (Link to Reuben's work and discussion of X-headers for LangRefsets)
Algorithms for text searching (reference implementation course eg "PNE PNE" finding Pneumococcal pneumonia)
Implementation Notes
Default to JSON response
Discuss authentication for public server
Swagger interface to HAPI?
Response to context-root access
Command line switch
Copyright © 2025, SNOMED International