E2E Test Scenarios for Bahmni-SNOMED Engagement

This page contains the end to end test scenarios of all the proposed user journeys for the Bahmni-SNOMED Engagement in a Tabular Format. Manual testing is the approach that has been taken to ensure thorough check on quality and delivery of the user journeys

The table contains the scenario, the test steps, action to be taken by user, and the expected outcome of those actions

The purpose of these scenarios is to ensure that all the user journeys are working as agreed upon at the start of the project. It also allows any user to test the scenarios by laying out easy to follow steps to perform all the tests.

 

List of E2E journeys

 

 

 

 

 

 

 

Test Scenario for Diagnosis Search, Save, and Display

 

Test Description

Step No.

Step Description

Expected Results

As an end user, I want to test the functionality of Diagnosis Search and Save from SNOMED CT server, so that I can ensure the Bahmni-SNOMED integration is working as expected

OpenMRS Configuration Setup

Login to the OpenMRS Global Properties form https://qa.snomed.mybahmni.in/openmrs/admin/maintenance/globalProps.form

Global Properties page should be displayed.

In the properties form, Verify that the Global Property bahmni.lookupExternalTerminologyServer in OpenMRS is set to TRUE in order to search diagnosis terms from the SNOMED CT server

bahmni.lookupExternalTerminologyServer should be set to True to fetch results from SNOMED server.

In the properties form, Verify that the Global Property ts.fhir.baseurl field is set to https://snowstorm.snomed.mybahmni.in/fhir/

ts.fhir.baseurl field should be set to https://snowstorm.snomed.mybahmni.in/fhir/

In the properties form, Verify that ts.fhir.valueset.urltemplate field is set as ValueSet/$expand?url={0}&filter={1}&count={2}&displayLanguage={3}&includeDesignations={4}

ts.fhir.valueset.urltemplate field should be set to ValueSet/$expand?url={0}&filter={1}&count={2}&displayLanguage={3}&includeDesignations={4}

1

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

2

Navigate to Clinical module and open an 'active' patient

The patient dashboard should be displayed

3

Click on 'Consultation' button and then click on Diagnoses tab

Diagnoses page should be displayed

4

Enter a search term on Diagnoses search field and validate that the Bahmni system returns search results from SNOMED CT Terminology server

The search results should be fetched from SNOMED CT Terminology server.

The search results can be verified from SNOMED CT browser by providing the same search term
URL - https://browser.ihtsdotools.org/?perspective=full&conceptId1=61462000&edition=MAIN/2023-01-31&release=&languages=en

5

User Enters less than 3 characters in the diagnosis search field, validate that Bahmni system displays message

No search results will be displayed for less than 3 characters

6

  1. Goto OpenMRS Global Properties, under ts.fhir.baseurl field, change the value from https://snowstorm.snomed.mybahmni.in/fhir/ to https://ssnowstorm.snomed.mybahmni.in/fhir/.

  2. Enter keywords in Diagnosis search field in Bahmni application
    Validate that Bahmni system displays appropriate error message on the diagnosis screen

"There was an unexpected issue on the server. Please try again"

7

  1. Goto OpenMRS Global Properties, under ts.fhir.baseurl field, change the value from https://snowstorm.snomed.mybahmni.in/fhir/ to https://snowstorm.snomed.mybahmni.in/fhirrr/.

  2. Enter keywords in Diagnosis search field in Bahmni application
    Validate that Bahmni system displays appropriate error message on the diagnosis screen

"There was an unexpected issue on the server. Please try again"

8

  1. Goto OpenMRS Global Properties, remove the value set in ts.fhir.valueset.urltemplate field

  2. Enter keywords in Diagnosis search field in Bahmni application

Validate that Bahmni system displays appropriate error message on the diagnosis screen

"There was an unexpected issue on the server. Please try again"

9

Validate that the search results return the preferred terms of Disorders from SNOMED CT TS

(This can be checked by searching the term in SNOMED CT Browser and checking for the preferred term, filtered by disorder)

System displays only the preferred term of the searched word from the SNOMED CT server
URL from where the result can be validated - https://browser.ihtsdotools.org/?perspective=full&conceptId1=61462000&edition=MAIN/2023-01-31&release=&languages=en

10

Verify that system also returns the descendants of the search term in the search result

The search results should be fetched from SNOMED CT Terminology server and result can be verified from SNOMED CT browser
URL - https://browser.ihtsdotools.org/?perspective=full&conceptId1=61462000&edition=MAIN/2023-01-31&release=&languages=en

11

Select a value from search result, select the 'Order', 'Certainty', and 'Status'

The selected values for 'Order', Certainty and Status are highlighted and selected term should be displayed on diagnoses field

12

Click on 'save' button and validate success message is displayed

Success message should be displayed

13

Verify that the value is saved in OpenMRS application
Goto OpenMRS dictionary module, search for the saved diagnoses, validate the term is added to OpenMRS dictionary with the Fully Specified Name same as the Fully Specified Name in SNOMED CT, and the preferred synonym is added as Short Name in OpenMRS.
OpenMRS Dictionary URL - https://dev.snomed.mybahmni.in/openmrs/dictionary/index.htm

The value is saved in OpenMRS. The dictionary term should be available on OpenMRS and details as 'same as' SNOMED CT browser.
Fully Specified Name in OpenMRS = Fully Specified Name in SNOMED CT
Short Name in OpenMRS = Preferred Synonym in SNOMED CT

14

Verify the saved diagnosis is displayed on patient dashboard

The saved diagnoses should be displayed on patient dashboard.

As an end user, I want to test the functionality of Conditions Search and Save from SNOMED CT server, so that I can ensure the Bahmni-SNOMED integration is working as expected

1

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

2

Navigate to Clinical module and open an 'active' patient

The patient dashboard should be displayed

3

Click on 'Consultation' button and then click on Diagnoses tab

Diagnoses page should be displayed

4

Enter a search term on 'Conditions' search field and validate that the Bahmni system returns search results from SNOMED CT Terminology server

The search results should be fetched from SNOMED CT Terminology server.

The search results can be verified from SNOMED CT browser by providing the same search term
URL -

5

Repeat Steps 5 to 14 above for conditions search

The expected results should match the corresponding results for step 5 to 14

As a user, I want to Validate that no new ID is created for the same saved Diagnosis term in OpenMRS, when more than 1 patient has been recorded with same diagnosis

1

Select a new patient and navigate to Diagnosis Tab

Diagnoses page should be displayed

2

Select and save the same diagnosis term that was saved in step#13

Success message should be displayed

3

Validate that the same diagnosis value is saved for this patient, meaning, no new concept ID is created for the existing diagnosis in OpenMRS

No new concept ID should be created if the existing concept is used to record patient data

 

 

Test Scenario for Diagnosis Report By Gender

As an end user, I want to test the E2E journey of Diagnosis Count Report for Asthma and Malaria, so that I can ensure the report is providing accurate count of diagnosis

Step No.

Step Description

Expected Results

1

Login to Bahmni application as user
Application URL- https://qa.snomed.mybahmni.in

User should be logged in

2

Navigate to report module and open report dashboard

The report dashboard should be displayed with list of different reports

3

Validate "Diagnosis Count Report for Malaria" and "Diagnosis Count Report for Asthma" are available in the list of reports

System should display the below 2 reports in the list
"Diagnosis Count Report for Malaria"
"Diagnosis Count Report for Asthma"

4

Select Start and End date from the calendar for "Diagnosis Count Report for Malaria"

The selected date should be displayed in given format ‘dd/mm/yyyy’

5

For the format, click on HTML from the format drop down list

HTML should be selected as format for report

6

Clicks on "RUN NOW" button for the report

The report for diagnosis count of patients for Malaria should be displayed based total count of patients for each diagnosis

7

Verify that the generated report is displayed in a Tabular format, with Malaria as diagnosis and the total count

Report should be shown in tabular format with generated date and time and selected duration (start date to end date) with Malaria diagnosis and the count of patients

8

Verify that the generated report also has count based on Gender

The report for diagnosis count should include columns Male, Female, Other, Not disclosed, and Total

9

Verify that all the descendants of Malaria that are saved in OpenMRS are shown in the report in separate line item

Below is the configuration which is found in https://github.com/Bahmni/default-config/blob/<BRANCH>/openmrs/apps/reports/reports.json

"diagnosisCountMalaria": {
"name": "Diagnosis Count Report for Malaria",
"type": "snomedDiagnosis",
"requiredPrivilege": "app:reports",
"config": {
"snomedParentCode": "61462000"
}
},

 

The verification of descendant output can be done with the help of given link, where we can cross verify the diagnosis

10

Check initial count of the Malaria diagnosis, then add the same malaria diagnosis for a new patient and re-run the report.

The total count of the Malaria diagnosis should be incremented by 1

11

Select a patient, save diagnosis as 'heart block', goto the reports and run the diagnosis count report for Malaria

The total count of the Malaria diagnosis should remain the same

12

For validation for Diagnosis count report for Asthma, repeat steps 2 to 10 with below configuration

Below is the configuration which is found in https://github.com/Bahmni/default-config/blob/<BRANCH>/openmrs/apps/reports/reports.json

"diagnosisCountAsthma": {
"name": "Diagnosis Count Report for Asthma",
"type": "snomedDiagnosis",
"requiredPrivilege": "app:reports",
"config": {
"snomedParentCode": "195967001"
}
}

 

13

  1. Goto OpenMRS Global Properties, under ts.fhir.baseurl field, change the value from https://snowstorm.snomed.mybahmni.in/fhir/ to https://ssnowstorm.snomed.mybahmni.in/fhir/.

  2. Run the report for Malaria or Asthma

System should display error message

 

Test Scenario for CDSS Alerts

As an end user, I want to test the functionality of all the types of CDSS alerts so that I can ensure the feature is working as expected

Step No.

Step Description

Expected Results

Configuration Setup

Login to the OpenMRS Global Properties form https://qa.snomed.mybahmni.in/openmrs/admin/maintenance/globalProps.form

Global Properties page should be displayed.

In the properties form, verify that the Global Property "cdss.enable" in OpenMRS is set to TRUE in order to invoke CDSS rule

cdss.enable should be set to TRUE for leveraging CDSS engine rules

In the properties form, check the value of cdss.fhir.baseurl

cdss.fhir.baseurl should be set to https://cdss-dev.snomed.mybahmni.in/cds-services/

 

 

 

Diagnosis-Drug Contraindication

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on diagnoses tab

Diagnoses page should be displayed

In Diagnosis search box, search for Asthma

System displays list of matched results

Select Asthma and save the diagnosis

Asthma is saved as Diagnosis for the patient

Navigate to Medications Tab

Medication page should be displayed

Under Drug Name, search for Propranolol as drug

System should display list of matched results

Select 'Propranolol hydrochloride 40 mg oral tablet (Tablet)' from the search list

 

Provide all the information such as dose, unit, frequency, duration, route, etc and click on Add button

System should display a drug-diagnosis 'Critical' alert message against the drug on the right hand panel. Summary should display the drug and the diagnosis causing the contraindication

Alternate Scenario: User selects 'Hypokalemia' as diagnosis and Acetazolamide 250 mg oral tablet (Tablet) as medication

System should display a drug-diagnosis 'Warning' alert message against the drug on the right hand panel. Summary should display the drug and the diagnosis causing the contraindication

Alternate Scenario: User selects 'Hyponatremia' as diagnosis and Acetazolamide 250 mg oral tablet (Tablet) as medication

System should display a drug-diagnosis 'Info' alert message against the drug on the right hand panel. Summary should display the drug and the diagnosis causing the contraindication

 

 

 

Diagnosis-Drug Contraindication in Diagnoses Tab

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Medications tab

Medications page should be displayed

Search and select 'Propranolol hydrochloride 40 mg oral tablet (Tablet)' from the search list

 

Provide all the information such as dose, unit, frequency, duration, route, etc and click on Add button

System should add the prescribed drug on the right side

Navigate to diagnoses tab

System should display the diagnoses page

In Diagnoses search box, search and select Asthma

System should display a drug-diagnosis 'Critical' alert message below the selected drug (in this case 'Asthma')

 

The alert message should also indicate the user to go to the medications tab by displaying a message

 

Save button is disabled with an error message

User navigates to medications tab, and dismisses the critical alert, and navigates back to diagnoses tab

Grey 'info' icon is displayed against the diagnoses (in this case, Asthma)

User clicks on the 'info' icon

Dismissed alert is displayed along with the category (in this case 'Critical')

Alternate Scenario: User selects Acetazolamide 250 mg oral tablet (Tablet) in medications tab and selects Hypokalemia in diagnosis tab

System should display a drug-diagnosis 'Warning' alert message below the selected drug (in this case 'Hypokalemia')

 

The alert message should also indicate the user to go to the medications tab by displaying a message

 

Save button remains enabled

User clicks on Save button

The system should save the record

 

Grey 'info' icon is displayed against the diagnoses (in this case, Hypokalemia)

 

 

Alternate Scenario: User selects Acetazolamide 250 mg oral tablet (Tablet) in medications tab and selects Hyponatremia in diagnosis tab

System should display a drug-diagnosis 'Info' alert message below the selected drug (in this case 'Hyponatremia')

 

The alert message should also indicate the user to go to the medications tab by displaying a message

 

Save button remains enabled

User clicks on Save button

The system should save the record

 

 

Grey 'info' icon is displayed against the diagnoses (in this case, Hyponatremia)

Drug-Drug Contraindication

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on medication tab

Medication page should be displayed

Search and select Acetazolamide 250 mg oral tablet (Tablet) from the drug search field

 

Provide all the information such as dose, unit, frequency, duration, route, etc and click on Add button

System should display the drug on the right hand panel

Search and select Allopurinol 100 mg oral tablet (Tablet) from the drug search field

 

Provide all the information such as dose, unit, frequency, duration, route, etc and click on Add button

System should display drug-drug 'warning' alert message against the drugs Acetazolamide and Allopurinol on the right hand panel. Summary should display the drug-drug interaction causing the contraindication

Alternate Scenario: User selects 'Amiodarone hydrochloride 100 mg oral tablet (Tablet)' and 'Albendazole 400 mg chewable tablet (Tablet)' as drugs

System should display drug-drug 'info' alert message against the drugs Amiodarone and Albendazole on the right hand panel. Summary should display the drug-drug interaction causing the contraindication

Alternate Scenario: User selects 'Amitriptyline hydrochloride 10 mg oral tablet (Tablet)' and 'Amoxicillin 250 mg chewable tablet (Tablet)' as drugs

System should display drug-drug 'critical' alert message against the drugs Amitriptyline and Amoxicillin on the right hand panel. Summary should display the drug-drug interaction causing the contraindication

 

 

 

High Dosage Alert for a single substance in a single drug

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on medication tab

Medication page should be displayed

Search and select Ranitidine 150 mg oral tablet (Tablet) from the drug search field

 

Provide all the information such as below
Dose = 5; unit = Tablets; frequency = thrice a day; duration = 2; route = oral; and click on Add button

System should display high dosage 'warning' alert message against the drug Ranitidine on the right hand panel. Summary should display the number of times the prescribed dose is compared to average daily dose

If below information is provided
Dose = 5; unit = Tablets; frequency = once a day; duration = 2; route = oral; and click on Add button

System should display high dosage 'info' alert message against the drug Ranitidine on the right hand panel. Summary should display the number of times the prescribed dose is compared to average daily dose

 

 

The details of the alert will have below information
Substance - This is the substance which is in the drug that triggered the alert
Present in this patient's medication - The drug prescribed to the patient in which the substance is present (in this case Ranitidine 150 mg oral tablet (Tablet))
Route of Administration - Route through which the medication is to be consumed by patient (in this case, oral)
Prescribed Daily Dose - Dose prescribed to the patient by clinicians
Recommended average Daily Dose - Average dose which is recommended
Conclusion - Number of times the prescribed dose is compared to recommended avg. daily dose

 

 

 

High Dosage Alert for a single substance across multiple drugs

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on medication tab

Medication page should be displayed

Search and select Ranitidine 150 mg oral tablet (Tablet) from the drug search field

 

Provide all the information such as below
Dose = 2; unit = Tablets; frequency = once a day; duration = 1; route = oral; and click on Add button

System should add the prescribed drug on the right hand panel

Search and select Ranitidine 25 mg/mL solution for injection (Injection) from the drug search field

 

Provide all the information such as below
Dose = 100; unit = ml; frequency = ; duration = 1; route = intravenous; and click on Add button

System should display high dosage 'info' alert message against the 2 drugs having Ranitidine on the right hand panel. Summary should display the number of times the prescribed dose is compared to average daily dose

 

The details of the alert will have below information
Substance - This is the substance which is in the drug that triggered the alert
Present in this patient's medication - List of drugs prescribed to the patient in which the substance is present (in this case - Ranitidine 150 mg oral tablet (Tablet) and Ranitidine 25 mg/mL solution for injection (Injection) )
Route of Administration - Route through which the medication is to be consumed by patient ( in this case, oral and parenteral)
Prescribed Daily Dose - Dose prescribed to the patient by clinicians
Recommended average Daily Dose - Average dose which is recommended
Conclusion - Number of times the prescribed dose is compared to recommended avg. daily dose

 

 

 

High Dosage Alert for multiple substances within a single drug

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on medication tab

Medication page should be displayed

Search and select Colchicine 500 microgram and probenecid 500 mg oral tablet (Tablet) from the drug search field

 

Provide all the information such as below
Dose = 100; unit = Tablets; frequency = every hour; duration = 2; route = oral; and click on Add button

System should display 2 high dosage 'warning' alert message against the drug on the right hand panel. Summary should display the number of times the prescribed dose is compared to average daily dose

 

First 'warning' alert message should be for substance Probenecid
Second 'warning' alert message should be for substance Cholchicine

 

 

The details of the alert will have below information
Substance - This is the substance which is in the drug that triggered the alert
Present in this patient's medication - The drug prescribed to the patient in which the substance is present (in this case Colchicine 500 microgram and probenecid 500 mg oral tablet (Tablet))
Route of Administration - Route through which the medication is to be consumed by patient (in this case, oral)
Prescribed Daily Dose - Dose prescribed to the patient by clinicians
Recommended average Daily Dose - Average dose which is recommended
Conclusion - Number of times the prescribed dose is compared to recommended avg. daily dose

 

 

 

4

Display of alerts

Each alert should consist of summary, details, CDS Indicator, and CDS source link

5

System displays multiple alerts

Multiple alerts are shown in the form of separate rows, below the prescribed drug

6

Click on the expand button on any of the alert

System should display the details of that alert along with the source link

 

 

For 'Critical' alerts, 'Reason for Dismissal' is also displayed along with the details of the alert

7

Click on the CDS source link in the alert (in the form of 'question mark')

User should be taken to the page of the source in a new tab

8

System displays at least 1 'Critical' alert

Save button is disabled with an error message

9

Click on the 'reason for dismissal' dropdown for 'Critical' alert

System should display the reason for dismissal with a dropdown list

10

Select a reason from the dropdown list and click Dismiss button

The critical alert is greyed out and stricken off, indicating the alert is dismissed

11

Click on the "Cross" button on the Warning or Info alert

The 'warning' and 'info' alert is greyed out and stricken off, indicating the alert is dismissed

 

 

The dismiss action should be logged using audit module

Post API call from the frontend using the endpoint https://dev.snomed.mybahmni.in/openmrs/ws/rest/v1/auditlog
eventType: "rule name/event type"
message: "dismissed - what did you dismiss?"
module: "cdss"

12

User removes the drug selection by clicking on the remove button

All the alerts are now removed from display

13

User dismisses all critical alerts

Save button should be enabled

14

User dismisses all alerts

All The alert rows should be removed

 

 

A grey ‘info’ icon should be displayed against the drug on the left side

15

Click on the 'info' icon on the left side of the drug

System should display all the dismissed alert along with the category

16

Clicks on Save

The medication should be saved for that patient

 

Test Scenario for Configuring and Using Form Builder

Test Description

Step No.

Step Description

Expected Results

As an end user, I want to test the functionality of the form builder to ensure it is working as expected

1

Login to Bahmni OpenMRS

User should be logged in

2

Click on dictionary tab

Dictionary page should be displayed

3

Click on 'Add new Concept'

New concept form is displayed

4

Provide Fully Specified Name

 

5

Set Class as 'Misc' and Datatype as 'Coded'

Misc is selected as Class
Coded is selected as Datatype

6

Save the concept

Concept Should be saved in OpenMRS

As an end user, I want to test the functionality of the form builder to ensure it is working as expected

1

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

2

Navigate to implementer interface module and open form builder

The form builder page should be displayed

3

Click on 'Create New Form'

Form Name dialog box should be displayed

4

Enter form name and click on 'Create Form'

Form details page should be displayed

5

Drag and drop Obs from the controls in the left panel into the form details canvas

Obs control should be displayed in the form canvas

 

Select the "Select Obs Source" from the form canvas

Control Properties for that source should be enabled

6

Under the Control Properties in the left panel, search for the coded name created in OpenMRS in previous steps

System displays list of matched results

7

Select the coded concept from the search list

Selected concept is displayed in the form canvas

 

Select the coded concept from the form canvas

Control Properties for that source should be enabled

 

Under control properties, in the URL field provide the SNOMED ECL query
eg., http://snomed.info/sct?fhir_vs=ecl/ <274913009

This provides the list of ‘Motor vehicle on road in collision with another motor vehicle (event)’. This can be checked in by searching for the the code 274913009

System displays the value sets from the SNOMED CT

8

Click on 'Save'

The form should be saved as a draft

9

Click on 'Preview'

The form should be displayed as in a preview mode

10

Click on 'Publish'

The form should be published, and should be available for clinician to use the form (this can be checked under Clinical module in observations Tab. Under 'Add new Obs form, the currently published form should be available for selection)

Using Form Builder in OPD

1

Navigate to clinical module

Clinical landing page should be displayed

2

Select an Active patient from the list

Selected patient's dashboard is displayed

3

Click on Consultation

Consultation page should be displayed

4

Under observations Tab, click on Add New Obs form

List of forms should be displayed

5

Select the form that was configured in previous steps

The selected form should be displayed along with the questions and SNOMED value sets as answers

6

Record patient's response by selecting one of the values from the answer

 

7

Save the response in Bahmni

The answer should be saved in OpenMRS

Reporting of the form builder records

1

Navigate to reports module

List of reports should be displayed

2

For Form Builder Form Report, provide the start date, end date, and format

System should display the selected values by the user

3

Run the report

System should display the patient details along with the response recorded for the question in the form used in previous steps

 

Test Scenario for Ordering Procedures

As an end user, I want to test the functionality of SNOMED CT procedures for body-sites

Step No.

Step Description

Expected Results

Configuration Setup

 To upload the procedures in Bahmni application, follow the steps mention here

 Procedures should be uploaded in Bahmni

1

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

2

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

3

Click on consultation button and then click on orders tab

Orders page should be displayed

4

In Orders Tab, click on Procedures on the left panel

List of body sites should be displayed

5

Select Head from the body site

System should display the list of SNOMED procedures for 'Head'

6

Select a procedure from the list

System should highlight the selected procedure

7

Click on Save

System should save the procedure in OpenMRS

8

Click on patient dashboard

The selected procedure should be displayed in the procedure card

 

 

Test Scenarios for ICD-10 Code Mapping for a given SNOMED Code

As an end user, I want to test the functionality of ICD-10 Code mapping for a given SNOMED code, so that I can ensure correct ICD-10 codes are getting displayed in the report. More on understanding of the mapping of ICD-10 codes in below document

 

Step No.

Step Description

Expected Results

Configuration Setup

Introduce configuration entry in reports.json for ICD-10 code(s) extension

i.e., "extensions": ["<FULLY_QUALIFIED_CLASSNAME>"]

"diagnosisLineReportPneumonia": { "name": "SNOMED Diagnosis Line Report(ICD) for Pneumonia", "type": "fhirTSLookupDiagnosisLine", "requiredPrivilege": "app:reports", "config": { "tsConceptSource": "SCT", "conceptNameDisplayFormat": "shortNamePreferred", "terminologyParentCode": "421671002", "displayTerminologyCode": "true", "terminologyColumnName": "SNOMED Code", "patientAttributes": [ ], "patientAddresses": [ ], "extensions": ["org.bahmni.reports.extensions.icd10.Icd10ResultSetExtension"] } }

1

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

2

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

3

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

Use case for displaying multiple ICD-10 codes for single SNOMED Code from each mapgroups (in this case, there will be more than one mapgroup)

In Diagnosis/condition search bar, search for 'SARS-CoV-2 breakthrough infection' (SNOMED Code 1217296006)

System should display the search result for SARS-CoV-2 breakthrough infection

Select and Save 'SARS-CoV-2 breakthrough infection'

System should save the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Provide Start Date, End Date and Format for 'SNOMED Line Report for COVID' and click Run

System should display the line report with the following columns
Patient ID, Patient Name, Date of Birth, Gender, Diagnosis/Condition (Preferred Term), SNOMED Code, Date and Time of the occurance, and ICD-10 code

 

System should display ICD-10 codes "T88.0, U07.1" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there are 2 "greent tick" from 2 different mapgroups

 

 

 

Use case for displaying single ICD-10 code (default one-to-one rule) for single SNOMED Code having single mapgroup

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

In Diagnosis/condition search bar, search for 'Peritonitis' (SNOMED code 48661000)

System should display the search result for Peritonitis

Select and Save Peritonitis

System should save the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Provide Start Date, End Date and Format for 'SNOMED Line Report for Malaria' and click Run

System should display the line report with the following columns
Patient ID, Patient Name, Date of Birth, Gender, Diagnosis/Condition (Preferred Term), SNOMED Code, Date and Time of the occurance, and ICD-10 code

 

System should display ICD-10 codes "K65.9" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

 

 

 

Use case for displaying single ICD-10 code from a mapgroup for a SNOMED Code based on patient's Age

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

In Diagnosis/condition search bar, search for 'Bronchitis' (SNOMED Code 32398004)

System should display the search result for Bronchitis

Select and Save Bronchitis

System should save the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Provide Start Date, End Date and Format for 'SNOMED Line Report for Bronchitis' and click Run

System should display the line report with the following columns
Patient ID, Patient Name, Date of Birth, Gender, Diagnosis/Condition (Preferred Term), SNOMED Code, Date and Time of the occurance, and ICD-10 code

Age of the patient is less than or equal to 15

System should display ICD-10 codes "J20.9" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

Age of the patient is more than 15

System should display ICD-10 codes "J40" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

 

 

 

Use case for displaying ICD-10 codes from a mapgroup for a SNOMED code based on patient's Age Range

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

In Diagnosis/condition search bar, search for 'Excessive Growth Rate' (SNOMED Code 440311000124109)

System should display the search result for Excessive Growth Rate

Select and Save Excessive Growth Rate

System should save the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Provide Start Date, End Date and Format for 'SNOMED Line Report for Excessive growth rate' and click Run

System should display the line report with the following columns
Patient ID, Patient Name, Date of Birth, Gender, Diagnosis/Condition (Preferred Term), SNOMED Code, Date and Time of the occurrence, and ICD-10 code

Age of the patient is >=12 and <19

System should display ICD-10 code "Z00.3" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

Age of the patient is <19

System should display ICD-10 codes "Z00.2" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

Age of the patient is apart from above 2 scenarios

System should display Blank in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

 

 

 

Use case for displaying ICD-10 code from a mapgroup for a SNOMED Code based on Gender

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

In Diagnosis/condition search bar, search for 'Pelvic peritonitis' (SNOMED Code 788010000)

System should display the search result for Pelvic peritonitis

Select and Save Pelvic peritonitis

System should save the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Provide Start Date, End Date and Format for 'SNOMED Line Report for Peritonitis' and click Run

System should display the line report with the following columns
Patient ID, Patient Name, Date of Birth, Gender, Diagnosis/Condition (Preferred Term), SNOMED Code, Date and Time of the occurance, and ICD-10 code

Gender of the patient is Female

System should display ICD-10 codes "N73.5" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

Gender of the patient is Male

System should display ICD-10 codes "K65.0" in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

Gender of the patient is apart from the above 2 scenarios

System should display Blank in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

 

 

 

Use case for displaying ICD-10 codes being Blank/Empty for a SNOMED Code

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

In Diagnosis/condition search bar, search for 'Dietary finding' (SNOMED Code 41829006)

System should display the search result for Dietary finding

Select and Save Dietary finding

System should save the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Provide Start Date, End Date and Format for 'SNOMED Line Report for Dietary finding' and click Run

System should display the line report with the following columns
Patient ID, Patient Name, Date of Birth, Gender, Diagnosis/Condition (Preferred Term), SNOMED Code, Date and Time of the occurance, and ICD-10 code

 

System should display Blank in the ICD-10 Code column
This can be verified by providing the diagnosis in the below link
where there is 1 "greent tick" in the mapgroup

 

 

 

4

Select the format as CSV and click on Run

System should download the corresponding report in the CSV format

5

If Snowstorm server is down and user is trying to generate ICD-10 report
This can be done by changing the url of snowstorm server from the OpenMRS global properties
Fhir Baseurl = https://snowstorm.snomed.mybahmni.in/fhir/

504 Internal server error should be displayed

 

 

 

Use case for ICD-10 codes and reports if the diagnosis/condition is drafted and not saved

Navigate to clinical module and open an active patient

The patient dashboard should be displayed

Click on consultation button and then click on Diagnosis tab

Diagnosis page should be displayed

In Diagnosis/condition search bar, search for 'Pelvic peritonitis'

System should display the search result for Pelvic peritonitis

Select and do NOT Save Pelvic peritonitis

System should draft the selected diagnosis for the patient

Navigate to Reports module

System should display the list of reports

Check for the "SNOMED Line Report for Peritonitis"

This Report shouldn't be available in the report section because the diagnosis/condition was added not saved

 

Test Scenario for Bulk FHIR Export of Patient Data

As an end user, I want to test the functionality of bulk FHIR export of patient data from Bahmni, so that I can ensure correct patient information is downloaded for further analytics and research

 

Step No.

Step Description

Expected Results

Users and Roles setup
(setting up 3 users with different roles for data export)

  1. Non-anonymised Export

  2. Anonymised Export

  3. Non Exporter

Login to OpenMRS with below credentials
Application URL -
username - superman
password - Admin123

User should be logged in

Navigate to Settings under Administration Tab

 

Non-Anonymised

  1. Under Manage Roles, add a new role named "nonanonymised"

  2. Select Clinical-App, Admin-App, and Bahmni-App from the Inherited role section

  3. Set previleges as "Export Non Anonymised Patient Data" and "Export Patient Data" and save

  4. Under Manage Users, create a user named "Plainexporter"

  5. Assign the role "nonanonymised" that was created

  6. Set username and password as plainexporter and Admin123 respectively and Save

System should save the role with the assigned privileges and create the user and assign the role to the user

 

 

Anonymised

  1. Under Manage Roles, add a new role named "anonymised"

  2. Select Clinical-App, Admin-App, and Bahmni-App from the Inherited role section

  3. Set previleges as "Export Patient Data" and save

  4. Under Manage Users, create a user named "Defaultexporter"

  5. Assign the role "anonymised" that was created

  6. Set username and password as default and Admin123 respectively and Save

System should save the role with the assigned privileges and create the user and assign the role to the user

 

 

Non Export

  1. Under Manage Roles, add a new role named "noexport"

  2. Select Clinical-App, Admin-App, and Bahmni-App from the Inherited role section and save

  3. Under Manage Users, create a user named "nonexporter"

  4. Assign the role "noexport" that was created

  5. Set username and password as nonexport and Admin123 respectively and Save

System should save the role with the assigned privileges and create the user and assign the role to the user

 

 

 

Configuration Setup

Login to OpenMRS with below credentials
Application URL -
username - superman
password - Admin123

User should be logged in

Navigate to Settings under Administration Tab

 

Under Settings, navigate to FHIR Link

System should display the global properties on the right hand side

Value of "Export Files Directory" should be set to /openmrs/data/fhirExports

 

Set value of 'Export Anonymise Config Path' as /openmrs/data/fhir-export-anonymise-config.json

This configuration determines which attributes of the resources will be exported, redacted, randomized, etc

Click on Save button

System should save the configuration

 

 

 

Non-Anonymised FHIR Export of Patient Data

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

 

Provide the below credentials
Username: plainexporter
Password: Admin123

User should be logged in

Goto the Admin module and click on FHIR Export

System should display FHIR Export page, table is loaded by default for privileged users

 

The Start Date and End Date should be provided by default (End Date = Current Date, Start Date = 30 days prior)

 

The 'Anonymise' check box should be selected by default and is editable

Scenario 1: User does not provide start date and end date and 'Anonymise' check box is unchecked, and then clicks on Export button

System should display success message in the toast "Request submitted. Please click on 'Refresh' to check status of report

Click on the Refresh button to reload the table

An entry is created in a table with the below columns:
Export triggered date, start date, end date, user name, Anonymised, status, and download link

 

The status column in the table can have 3 values: Accepted, Completed, Rejected

Status column displays accepted

Download column should be blank, as the system is still processing the export

Status column displays rejected

Download column should be blank, as the system could not process the request. User should contact administrator for support

Status column displays completed

Download link should be displayed in the download column

Click on Download link in the 'download' column

A zip file containing clinical and personal data of all the patients in Bahmni should get downloaded in the selected location (since no start date and end date is provided, system exports all the data)

Navigate to the location where the file is downloaded and unzip the file

Zip file should contain all, any, or none of the following NDJSON resources. The data should contain non-anonymised information, including personal identifiable information
Patient - Contains patient details for all the patients
Condition - Contains all the conditions corresponding to the patients
Medication - Contains all the medications corresponding to the patients
ServiceRequest - Contains all the procedure orders corresponding to the patients

 

Patient attributes NJDSON - resourceType, identifier, active, name, gender, birthDate, deceasedBoolean, deceasedDateTime, address

Condition Attributes NDJSON - resourceType, clinicalStatus, category, code, subject, encounter, onsetDateTime, recordedDate, recorder

Medication Attribute NDJSON - resourceType, status, intent, priority, medication, subject, encounter, authoredOn, requester, dosageInstruction, dispenseRequest.validityPeriod, dispenseRequest.numberOfRepeatsAllowed, dispenseRequest.quantity

ServiceRequest Attribute NDJSON - resourceType, status, category, code, subject, encounter

Scenario 2: User provides start date and end date and 'Anonymise' check box is not selected and clicks on Export

System should display success message in the toast "Request submitted. Please click on 'Refresh' to check status of report

Click on the Refresh button to reload the table

An entry is created in a table with the below columns:
Export triggered date, start date, end date, user name, Anonymised, status, and download link

Status column displays accepted

Download column should be blank, as the system is still processing the export

Status column displays rejected

Download column should be blank, as the system could not process the request. User should contact administrator for support

Status column displays completed

Download link should be displayed in the download column

Click on Download link in the 'download' column

A zip file containing clinical and/or personal data of the patients in Bahmni modified during the dates provided should get downloaded in the selected location

 

Zip file should contain all, any, or none of the following NDJSON resources. The data should contain non-anonymised information, including personal identifiable information
Patient - Contains patient details for all the patients
Condition - Contains all the conditions corresponding to the patients
Medication - Contains all the medications corresponding to the patients
ServiceRequest - Contains all the procedure orders corresponding to the patients

 

Patient attributes NJDSON - resourceType, identifier, active, name, gender, birthDate, deceasedBoolean, deceasedDateTime, address

Condition Attributes NDJSON - resourceType, clinicalStatus, category, code, subject, encounter, onsetDateTime, recordedDate, recorder

Medication Attribute NDJSON - resourceType, status, intent, priority, medication, subject, encounter, authoredOn, requester, dosageInstruction, dispenseRequest.validityPeriod, dispenseRequest.numberOfRepeatsAllowed, dispenseRequest.quantity

ServiceRequest Attribute NDJSON - resourceType, status, category, code, subject, encounter

Provide start date > end date and click on 'Send' button

System should display error message "End date [yyyy-mm-dd] should be on or after start date [yyyy-mm-dd]"

 

 

 

Anonymised Bulk FHIR Export

Login to Bahmni application as user with below credentials
Application URL - https://qa.snomed.mybahmni.in
Username: default
Password: Admin123

User should be logged in

Goto the Admin module and click on FHIR Export

System should display FHIR Export page. Table is loaded by default for privileged users

 

The Start Date and End Date should be provided by default (End Date = Current Date, Start Date = 30 days prior)

 

The 'Anonymise' check box should be selected by default and should be non-editable

Click on the 'Export' button

System should display success message in the toast "Request submitted. Please click on 'Refresh' to check status of report

Click on the Refresh button to reload the table

An entry is created in a table with the below columns:
Export triggered date, start date, end date, user name, Anonymised, status, and download link

Status column displays accepted

Download column should be blank, as the system is still processing the export

Status column displays rejected

Download column should be blank, as the system could not process the request. User should contact administrator for support

Status column displays completed

Download link should be displayed in the download column

Click on Download link in the 'download' column

A zip file containing clinical and/or personal data of the patients in Bahmni modified during the dates provided should get downloaded in the selected location

Navigate to the location where the file is downloaded and unzip the file

Zip file should contain all, any, or none of the following NDJSON resources. The data should be anonymised, meaning, no personal identifiable information should be exported
Patient - Contains patient details
Condition - Contains all the conditions corresponding to the patients
Medication - Contains all the medications corresponding to the patients
ServiceRequest - Contains all the procedure orders corresponding to the patients

 

Patient attributes NJDSON - resourceType, active, gender, birthDate (set to 1st January of the birth year), deceasedBoolean, deceasedDateTime (set to 1st January of the death year)

Condition Attributes NDJSON - resourceType, clinicalStatus, category, code, subject (an obfuscated handle to correlate to patient), onsetDateTime

Medication Attribute NDJSON - resourceType, status, intent, medication, subject (an obfuscated handle to correlate to patient), dispenseRequest.validityPeriod, dispenseRequest.numberOfRepeatsAllowed, dispenseRequest.quantity

ServiceRequest Attribute NDJSON - resourceType, status, category, code, subject (an obfuscated handle to correlate to patient)

 

 

 

Authorization error when exporting Non-Anonymised Data

Login to Bahmni application as user
Application URL - https://qa.snomed.mybahmni.in

User should be logged in

Under Authorization, provide the below credentials
Username: nonexport
Password: Admin123

 

Goto the Admin module and click on FHIR Export

System should display FHIR Export page

 

On the FHIR export page system should display a note "You do not have sufficient privilege to export data"

 

User should not be able to take any action on the page. i.e., all the buttons are disabled, also table is not loaded for non-privileged users

 

 

 

Audit Log

After the export of patient data, user navigates to Audit Log page

System displays the audit log page with the entries

 

System should display an entry for the bulk fhir export with the following message:
User <username> performed a bulk patient data export for: Start Date <date> at <hh:mm:ss> and End Date <date> at <hh:mm:ss> in <Anonymized/Non Anonymised> mode

 

The other columns in the audit log should be:
Created At, Event tyepe, username, patient ID, message, module

 

 

 

Viewing previously downloaded resources

Goto the Admin module and click on FHIR Export

System should display FHIR Export page

 

System should display the list of previously triggered exports in the same table which is mentioned in above scenarios

 

System should display the date and time of the export trigger along with the start date (if provided), end date (if provided), anonymised?, user, status, and the download column

 

System should allow the users to download the previously exported files upon clicking the download link

 

The previous download links will download the same file as it was used to download, when the link was most recent

 

 

 

Anonymised Bulk FHIR Export - Random Value

Login to OpenMRS
Application URL -

User should be logged in

Navigate to Settings under Administration Tab

 

Under Settings, navigate to FHIR Link

System should display the global properties on the right hand side

The configuration file inside OpenMRS container needs to be updated for the fields which needs a random value. The file is available at /openmrs/data/fhir-export-anonymise-config.json. Refer here for more details.

System should save the configuration

Export patient data using FHIR Export module

The Patient JNDSON should display the Address and Contact attributes as random characters

 

All other attributes remain the same in Patient resource and in other resources

 

 

 

Anonymised Bulk FHIR Export - Fixed Value

Login to OpenMRS
Application URL -

User should be logged in

Navigate to Settings under Administration Tab

 

Under Settings, navigate to FHIR Link

System should display the global properties on the right hand side

The configuration file inside OpenMRS container needs to be updated for the fields which needs a fixed value. The file is available at /openmrs/data/fhir-export-anonymise-config.json. Refer here for more details.

System should save the configuration

Export patient data using FHIR Export module

The Patient JNDSON should display the Address and Contact attributes as "fixedvalue"

 

All other attributes remain the same in Patient resource and other resources

 

 

 

Anonymised Bulk FHIR Export - Redact

Login to OpenMRS
Application URL -

User should be logged in

Navigate to Settings under Administration Tab

 

Under Settings, navigate to FHIR Link

System should display the global properties on the right hand side

Value of "Export Anonymise Config Path" should be set to /openmrs/data/fhir-export-anonymise-config.json

System should save the configuration

Export patient data using FHIR Export module

The export happens with personal identifiable information of the patient removed from all the resources (Patient, condition, medication request, and service request)

 

All other attributes remain the same in all the resources

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