SNOMED FHIR Terminology Server Integration with Bahmni



Showcase how opensource Bahmni EMR integrates with SNOMED FHIR Terminology Server, to leverage advantages of the SNOMED terminology and knowledge graph, in areas of recording clinical data, reporting, CDSS, analysis, etc.

Due date

Nov 15, 2023

Key outcomes

  1. Integration with Snowstorm (opensource SNOMED Terminology Server) for diagnosis search, form data entry, etc.

  2. Showcase benefits of SNOMED hierarchical terminology system in areas of: Reporting, CDSS, Analysis, etc.



  1. This feature will allow customers to start using SNOMED terminology in their health facilities for recording diagnosis/clinical data, and also perform reporting & CDSS use-cases using this recorded data. Customers will be able to perform CDSS use-cases for Drug-Diagnoses, Drug-Drug, and Drug High Dosage interactions. The full implementation is opensource and SNOMED international is very happy to help support implementations/geographies that wish to adopt SNOMED.

  2. Other features include export of bulk patient data as FHIR, integration with opensource SNOMED Analytics tool, WHO ICD-10 reports, and integration with Micro FHIR Terminology Server (Snowstorm Lite) for on-prem/offline hospitals. We look forward for community inputs and contributions.

  3. Please contact @Angshuman Sarkar @Vijay Anand Shanmughadass @Gurpreet Luthra @Ketan Goenka @Kai Kewley (SNOMED Team) who can help you understand this integration better if you are interested in exploring SNOMED. Or come to our Slack channel to ask questions directly with the SNOMED team.

  4. Bahmni roadmap for Global Standards like FHIR, SNOMED CT, LOINC, DICOM, HL7, etc can be read here:

  5. In this blog,, Shelley Lipon, Chief Customer Officer, and Nick Egarhos, Global Vendor Engagement Lead and Customer Relations Executive for the Middle East and Africa, discuss SNOMED International’s role in the project and the potential it has for improving patient care in resource-constrained regions that may not yet have adopted SNOMED CT. They also highlight the benefits for SNOMED International, outline the collaborative process that has enabled this initiative and summarize the next steps.

Tip: Bahmni ships with various options for Clinical Dictionary, which include Custom Dictionary, CIEL Dictionary or SNOMED TS integrated dictionary. Please refer to the following write-up to decide which option is most suitable to your facility / context. Link:

1. Objective

Create an open-source reference implementation that displays best practices regarding how EMRs can leverage and benefit from SNOMED CT coding system

SNOMED CT International seeks to integrate SNOMED-CT codes with Bahmni, offering an open-source reference implementation for best practices in utilizing SNOMED CT coding systems. This is valuable for governments and countries adopting SNOMED CT, guiding them in enhancing existing digital systems to fully realize the benefits of SNOMED CT.

2. Phase 1 Features

  1. Record patient diagnosis in Bahmni using SNOMED CT with real time Terminology Search - Diagnosis Search/Save

  2. Reports in Bahmni displaying the power of SNOMED CT- Diagnosis Reports

  3. CDSS alert in Bahmni based on recorded SNOMED diagnosis and drug interaction - CDSS

  4. Support for recording chief complaints H&E forms using SNOMED CT & Support for designing Bahmni - Form Builder

3. Phase 2 Features

  1. Generate ICD-10 reports based on SNOMED code mappings - ICD-10 Reporting

  2. Export anonymised, FHIR based, patient data for SNOMED analytics tool - Bulk Export for Analytics Tool

  3. CDSS alert in Bahmni based on drug-drug interaction, drug high dosage - CDSS

  4. Implementation of micro FHIR terminology server for low resource settings (include Contract Tests) - Micro FHIR

  5. Ability to setup and order procedures using SNOMED CT - Setup Procedures

  6. Ability to Sync Procedures with SNOMED TS - Sync Procedures

4. Current Landscape of Bahmni-SNOMED Integration

High Level Architecture Diagram

A high level architecture diagram, showing the relationship and information flow between Bahmni and SNOMED Terminology Server:

  1. Bahmni communicates over FHIR with SNOMED TS Server (called Snowstorm)

  2. There is a real time search done for Observations and Conditions.

  3. For CDS, the Medication Orders are sent to a custom CDS microservice, which then connects to Snowstorm to pull drug model, and evaluate the configured drug rules, before returning information around Critical/Warning/Info alerts back to Bahmni EMR.

  4. Bahmni also supports ICD-10 reporting, where for retrieving the SNOMED CT to ICD-10 maps, and relevant rules, the lookup is done over FHIR by Bahmni from Snowstorm.

  5. For the Snomed Analytics tool, there is an export Patient data as bulk NDJSON FHIR is provided by Bahmni. This data is then injested by Analytics demonstrator tool of SNOMED CT, and behind the scene some ECL queries are fired to Snowstorm, for query resolution.

  6. All the above use-cases are demoed on this wiki page.


The CDSS and Terminology Server (Snowstorm LITE), marked with dotted lines, are deployed within the premises (can be on same machine or different).




The CDSS and Terminology Server (Snowstorm), depicted with dotted lines, are deployed on independent computing instances external to the Bahmni compute instance.



5. Environments for Dev, QA & Demo

(Go to CLINICAL section. Default creds: superman/Admin123)



Dev Environment

QA Environment

SNOWSTORM (SNOMED Terminology Server)

SNOWSTORM Lite Dev(SNOMED Terminology Server)

SNOWSTORM Lite QA (SNOMED Terminology Server)


5.1 Feedback

Users can try out the demo version of the Bahmni-SNOMED integration and provide their feedback by starting TALK Thread or post on our Slack Channel

Also, you can visit the communication channel of Bahmni for your reference

6. Features

  1. Clinicians can search for SNOMED terms for diagnosis or conditions

  2. Upon providing keywords, Bahmni performs real time search in SNOMED CT and displays search results

  3. Clinicians can also provide the SNOMED Code to search for a diagnosis in Bahmni

  4. The search engine shows the most relevant terms first and then longer, more specific, terms lower in the list. This is done using string length.

  5. Once a term is selected from SNOMED TS, it is automatically mapped and saved into Bahmni Concept Dictionary, and available for use in reports, CDSS, etc.

Recording Diagnosis and Displaying Reports (Video)

6.2 CDSS alert in Bahmni based on recorded SNOMED data

  1. CDSS feature allows the clinicians to make informed decisions when prescribing medications to the patients, for scenarios which might have some negative impact on patient health outcomes, based on predefined rules.

  2. Clinicians are notified with an alert when any of the below interaction has contraindications

    1. Diagnosis-Drug: When one or more drugs are contraindicated to a diagnosis and vice versa

    2. Drug-Drug: When two or more drugs are contraindicated to each other

    3. Drug Dosage: When prescribed drug(s) daily dosage is more than the recommended average daily dosage

  3. All or any of the above three alerts can be triggered at the same time

  4. For Drug-Diagnosis alert, the hierarchical classification in SNOMED CT helps to identify all the descendants of a diagnosis and applies the CDSS rules to those as well. Therefore, if a drug is contraindicated to a diagnosis, then the drug will be contraindicated to all the descendants of diagnosis as well.

  5. To mitigate the alert, clinicians can make amendments to the medications or their dosages in the medications tab

  6. Clinicians can also take an informed decision and can choose to dismiss the alert. For ‘critical’ alerts, user also needs to provide a reason for dismissing the alert

  7. Clinicians cannot save the data if an active critical alert exists, until they resolve the alert


CDSS Workflow


Features of the Alert Notification implemented in the project

  1. Three different severity (Critical, Warning, Info)

  2. Consists of summary (mandatory) and details (Optional)

  3. Includes link to the source of information (like Wiki, etc.)

  4. Clinician can choose to override critical alerts by providing justification


CDSS Alert Notification for Medical Interaction with SNOMED-CT (Video)

6.3 Generate ICD-10 reports based on SNOMED code mappings

  1. International Classification of Diseases (ICD) is a coding system developed by WHO.

  2. The WHO requires its member countries to report health indicators and statistics to support its global health monitoring and surveillance activities.

  3. Ensures accuracy and comparability of health data, which is essential for global health policy and decision-making.

  4. Map from SNOMED to ICD-10 exists, hence,  generating the ICD-10 report is of great value for both healthcare organisations, and the WHO.

  5. Please see these slides for screenshots of this SNOMED CT to ICD10 Mapping Reporting feature:

ICD-10 Workflow

Generate ICD-10 reports based on SNOMED code mappings (video)

6.4 Implementation of micro FHIR terminology server for low resource settings

Challenges in SNOMED CT Implementation:

  • Limited internet connectivity in some communities.

  • Medical documentation must remain accessible offline.

  • Insufficient computing power in remote African medical practices for a full Snowstorm server.

Solution: Micro FHIR Terminology Server (Snowstorm Lite):

  • A compact FHIR terminology server tailored for low-resource settings.

  • Enables searching within specific ValueSets.

  • Requires only approximately 1GB of memory, while Snowstorm demands 8 to 16GB.

  • Supports data input and Clinical Decision Support (CDS) functionality.



Snowstorm Lite

Internet Dependence

Requires a reliable internet connection

Designed for low-resource settings, can operate offline when needed

Server Size

Typically takes 8 to 16GB of memory

Lightweight, requires only around 1GB of memory

Bahmni-SNOMED Functionality

All the features can be accessed

All the features can be accessed

Use Case

Suitable for well-connected environments

Designed for remote medical practices with limited internet access and machine power

Memory Efficiency

Requires higher memory resources

Memory-efficient, optimized for low-resource settings


Broad use cases in various settings

Specifically tailored for low-resource and offline scenarios


6.5 Export anonymised, FHIR based, patient data for SNOMED analytical tool

Below diagram depicts the implementation of bulk FHIR export in Bahmni-SNOMED engagement

Benefits of  bulk FHIR export and SNOMED Analytics Tool

SNOMED Analytics Tool

  • Integration with the opensource SNOMED Analytics tool enables Bahmni adopters to leverage the
    SNOMED CT ontology for analytics and research

  • Users can make meaning based selections across patient to generate practical insights, for example measure correlations between different treatment options and various patient outcomes

Bulk FHIR Export

  • Anonymised clinical data can be exported for import into the SNOMED Analytics Tool or to support other research tooling

  • A full patient data export has also been provided that enables patient data to be transferred between EHRs that are FHIR compliant

  • Anonymisation has been enabled by default. All exports are protected by privileges.

  • See sampled anonymisation configuration here on Github: anonymize-fhir.json

Anonymised Bulk Export of Patient Data Through FHIR for Analytics (Video)

6.6 Reports in Bahmni displaying the power of SNOMED CT

  1. Clinicians can generate diagnosis count reports based on SNOMED terms

  2. Report feature can be accessed under the report module in Bahmni

  3. Clinicians need to select the duration for the report and mode of display

  4. Bahmni displays the patient count report based on gender

Advantage of using SNOMED CT TS

Bahmni leverages the hierarchical structure of Clinical Terms in SNOMED to also identify and report the descendants/children of the selected diagnosis for reporting

6.7 Ability to setup and order procedures using SNOMED CT

  1. Users can order SNOMED CT procedures from Bahmni which are grouped by body-sites

  2. There are some pre-requisites to upload the procedures in Bahmni

  3. For the pre-requisite, please follow steps mentioned here

  4. User can view the procedures under the orders tab

  5. User can choose the body-site, for which corresponding SNOMED CT procedures is displayed

  6. User can select one or multiple procedures and save it for the patient

Procedures Setup in Bahmni using SNOMED CT ValueSet (video)


8.8 Support for recording chief complaints H&E forms using SNOMED CT & Support for designing Bahmni

  1. Users can customise set of questions in Bahmni according to their requirements to record patient’s responses

  2. They can customise the questionnaire under the form builder module

  3. SNOMED CT is leveraged to provide the list of responses to a given question

  4. Once saved and published, the form is used by clinicians to record patient responses

  5. Clinicians can also generate a report on the patients’ responses under reports module

  6. Currently, the form names that can be used for creating forms and reporting the same are: "Test Form", "SNOMED H&E Form", "SNOMED Malaria Form", "SNOMED Asthma Form", "SNOMED COVID Form", "SNOMED Accident Intake Form"

Advantage of using SNOMED

Using SNOMED terms helps in standardising the responses from the patient, so that it can be easily exchanged with other EHR systems, hence improving patient healthcare

COVID-19 Form Designing and Recording Data using SNOMED CT Terms (Video)

7. Project Leads

@Vijay Anand Shanmughadass - Tech Lead

@Ketan Goenka - Business Analyst

@Kai Kewley - SNOMED

@Angshuman Sarkar, @Akhil Malhotra , @Gurpreet Luthra - Bahmni Core team support

8. Slack Communication Channel

Slack Channel: snomed-integration-dev

9. Reference materials

10. Release Artefacts

List of Release Artefacts can be found here

Note: In order to try out the features of SNOMED integration with Bahmni in your local environment, please visit our deployment guide here

11. Code Repos

List of code repos enhanced for SNOMED CT support.

To access the code related to Phase 2 of Bahmni SNOMED integration, utilize the tag named snomed-phase2. As an illustration, the tag for the openmrs-module-snomed repository can be found at

Repository Name


Change introduced

Tag Link



Module that offers FHIR compatible integration with SNOMED terminology server



Plugin extensions for integration with SNOMED terminology services



Enhance generic and gender-based diagnosis count report to support SNOMED descendant diagnosis



Custom Extension for mapping SNOMED to ICD-10 codes within Bahmni Reports



To manage terminology services configuration. Use 'snomed-master' branch.



To manage terminology services configuration for clinics in india. Use 'snomed-master' branch.



Enhance form designer to accommodate new form field for FHIR based SNOMED value set selection



Enhance coded concept controls to support answers from FHIR based SNOMED value sets



Module that offers FHIR compatible integration with CDSS server



Forked from . Offers alerting mechanism for drug-diagnosis contraindications.



Enhancements to Diagnosis and Medications tab to leverage integration with terminology services and CDSS



Enhancement to export patient data in FHIR format



Docker based deployment for Bahmni SNOMED integration



Encapsulates CDSS and Terminology Services integration features along with other bahmni modules



Utilities to create SNOMED entities stay here. i.e. Creation of Custom ValueSets



Gauge tests for Bahmni E2E tests



Common flows for Bahmni E2E tests

12. Architecture Notes (MoM)

13. Bahmni SNOMED Engagement Blog

14. SNOMED Announcement



The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)