An open source SNOMED-CT implementation
Update 2021: rsterminology2 has been superceded by a much more comprehensive tool : hermes
I have released an open-source SNOMED-CT terminology server called rsterminology. The source code is available from https://github.com/wardle/rsterminology.
It is software that is designed to be used by other software, rather than by end-users. I have shown videos of how I use this in an electronic patient record system in previous posts. It runs as a java microservice and is currently deployed within NHS Wales.
I have installed a working version of this software on a very small virtual machine for demonstration purposes. It is not intended for production use please! I will monitor usage and add throttling or shut down the service if this is misused.
For clinical users, I have just created (29th April) a quick SNOMED-CT search facility on a web page so that you can enter terms like “MS” or “DM” or “IHD” or “amlodipine” and see how autocomplete can work. The application is available here.
Here are some simple examples of how it can be used:
- Fetch information about a single concept with a known identifier:
- http://msdata.org.uk:8080/snomedct/concepts/24700007
- via Apigee console
- This shows information about multiple sclerosis
- Get the synonyms for a given concept
- Understand what a concept means, semantically, by virtue of subsumption (the IS-A relationships)
- http://msdata.org.uk:8080/snomedct/concepts/24700007/recursiveParents
- via Apigee console
- In this example you see that multiple sclerosis is a disease of the nervous system for example.
- Perhaps the most powerful feature is free-text searching. You would not usually search the whole of SNOMED-CT but instead limit to particular sub-trees such as diagnoses, procedures, ethnic origins etc.
- http://msdata.org.uk:8080/snomedct/search?s=msa&root=64572001
- via Apigee console
- Here we search for “MSA” but only in the “diagnoses” hierarchy - which has the concept identifier 64572001.
- Let’s now let our users choose a country of birth. The root representing these concepts is 370159000.
- Finally, let’s parse a medication such as amlodipine 5mg od, which means amlodipine should be taken 5mg per day once daily: