Bahmni-SNOMED TS Integration Local Installation Guide (using docker)

This page contains the steps to setup SNOMED enabled integration of Bahmni with SNOMED Terminology Server over FHIR in local machine

Pre-requisite

Docker should be up and running

Steps

  1. Checkout this repository and change branch to snomed-master (for latest docker images). Alternatively, you can use the snomed-ph2 branch to deploy the changes associated with Phase 2 of Bahmni SNOMED integration.

    git clone https://github.com/Bahmni/snomed-bahmni-docker.git git checkout snomed-master

This repository is used to run entire SNOMED Integration with Bahmni.

This deployment comes with two profiles i.e snomed-clinic and snomed-standard. Each profile has two terminology server options: SNOWSTORM (External SNOMED Server) and SNOWSTORM LITE (Micro FHIR Server)

  1. To start SNOMED CLINIC or STANDARD using docker compose (External SNOMED Server)

    1. Go to snomed-clinic or snomed-standard subfolder. For example: cd snomed-clinic.

    2. Ensure your .env file in the sub-folder has correct PROFILE configured. For example: COMPOSE_PROFILES=snomed-clinic . Make sure the JVM argument fhir.terminology-server.url in the environment variable CDSS_JAVA_SERVER_OPTS is set to the valid SNOMED FHIR Server URL (eg. https://snowstorm.snomed.mybahmni.in/fhir/)

    3. Execute script: ./run-bahmni.sh. This will give you options for start/stop/view-logs/pull/reset/etc.

  2. To use SNOWSTORM LITE server along with SNOMED CLINIC or STANDARD, please follow the below steps:

    1. Go to snomed-clinic-with-snowstorm-lite or snomed-standard-with-snowstorm-lite subfolder. For example: cd snomed-standard-with-snowstorm-lite.

    2. Update SNOWSTORM_RF2_FILE_PATH with RF2 file path from SNOMED and admin.password in the .env file.

    3. Replace <UPDATE_PASSWORD_HERE> with the same admin.password in the load-data.sh file.

    4. Execute script: ./run-bahmni.sh. This will give you options for start/stop/view-logs/pull/reset/etc.

Get the SNOMED RF2 file from SNOMED International (this RF2 file is a licensed file)

4. Go to browser, and hit https://localhost

5. List of Global properties to be updated - Under OpenMRS Advance Settings, lookup for below properties, and update the values as mentioned

 

Global Property Name

Description

Example

Global Property Name

Description

Example

1

bahmni.lookupExternalTerminologyServer

Boolean property to determine whether external terminology server is being used or not

true

2

ts.fhir.baseurl

Base URL of the terminology server

https://snowstorm.snomed.mybahmni.in/fhir/ (external terminology server URL)

For using Snowstorm Lite use below value:

http://snowstorm-lite:8080/fhir/

3

cdss.fhir.baseurl

Base URL for CDSS service

http://cdss:8080/cds-services

4

cdss.enable

Property used to determine whether CDSS being used or not

true

5

ts.fhir.valueset.urltemplate

Valueset URL template for FHIR terminology server

ValueSet/$expand?url={0}&filter={1}&count={2}&displayLanguage={3}&includeDesignations={4}

6

ts.fhir.diagnosissearch.valueseturl

Valueset URL for Diagnosis Search on terminology server

http://snomed.info/sct?fhir_vs=ecl/<404684003

i.e includes subset of Clinical finding (finding)

7

ts.fhir.conceptDetailsUrl

URL template pattern for fetching concept details from terminology server

http://snomed.info/sct?fhir_vs=ecl/{0}

8

ts.fhir.diagnosiscount.valueseturl

Valueset URL for Diagnosis Count on terminology server

http://snomed.info/sct?fhir_vs=ecl/<<

9

ts.fhir.diagnosiscount.valueset.urltemplate

Valueset URL template for Diagnosis Count Reports

ValueSet/$expand?url={0}{1}&displayLanguage={2}&count={3,number,#}&offset={4,number,#}

10

ts.fhir.observation.valueset.urltemplate

Valueset URL template for Observation on terminology server

ValueSet/$expand?url={0}&displayLanguage={1}&_format={2}&filter={3}&count={4}

11

ts.fhir.procedure.valueset.urltemplate

URL template pattern for fetching valueset for procedure details from terminology server

http://bahmni.org/fhir/ValueSet/

12

fhir.export.anonymise.config.path

Path of the config file that controls the anonymisation mechanism during bulk-export of patient data

/openmrs/data/fhir-export-anonymise-config.json

see this page for more details

  1. To upload procedures in Bahmni, please follow steps mentioned here

Known Issues with SNOMED CLINIC CONFIGURATION

  1. For any concept supporting multiple languages, the form builder report displays all the languages against the corresponding concept. For more details, refer to this link

  2. 'Procedure Orders' concept is not automatically added as set member under 'All Orderables' after SNOMED CLINIC deployment. As a workaround 'Procedure Orders' needs to be manually added as set member under 'All Orderables' using OpenMRS concept dictionary. For more details refer to this link

Known Issues with SNOMED STANDARD CONFIGURATION

  1. The Patient Identifier (GAN) needs to be updated in OpenMRS with Max Length of 14. This will allow new patients to be created in Bahmni.

 

Known Issues common to CLINIC and STANDARD CONFIGURATION

  1. The concept ‘Procedure Orders’ need to be edited under OpenMRS and the checkbox of the ‘Is Set’ field should be checked. This will allow Bahmni to add procedures, once uploaded.

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