Bahmni Covid-19 Vaccine-kit

 

About the Feature

The Bahmni Covid19 Vaccine kit artefact would enable the health care professionals using Bahmni to capture the vaccination details of the people being vaccinated and would help record statistic of the vaccination people with or without any comorbidities.

 

Feature List

  • Covid-19 Vaccination form

  • Editable functionality for the form to fill second dosage details and any side effects reported after vaccination

  • Covid-19 Vaccination Certificate (with Print and Preview Functionality)

 

Prerequisites

  1. Supported Bahmni Version 0.92.

  2. All new concepts are imported using OpenMRS module initializer. This OpenMRS module needs specific versions of the following modules which will be automatically installed by this package:

    1. appointments-1.2-SNAPSHOT.omod

    2. bahmni.ie.apps-1.0.0.omod 

  3. The kit can be run on a system with concepts having CIEL UUIDs

 

Assumptions

  1. To roll back the COVID19 vaccine kit, the forms and programs should be manually deleted.

  2. After forms and programs are used it is not possible to roll back the changes. Concepts and mappings imported cannot be deleted.

Steps to Deploy Covid19 Starter Kit

New Implementation
  • Install Bahmni version 0.92 https://bahmni.atlassian.net/wiki/spaces/BAH/pages/33128505/Install+Bahmni+on+CentOS

  • Update default concepts with CEIL UUIDs (See Contact US)

  • Deploy Covid19 Starter Kit

  • 1 2 3 4 5 6 #Download and install RPM file from Github yum install https://github.com/Bahmni-Covid19/bahmni-covid19-kit/releases/download/Release_v2.0.68/bahmni-covid19-installer-0.92-68.noarch.rpm #Install COVID-19 Vccine kit sh /opt/bahmni-covid19-installer/install-vaccine-kit.sh

Existing Implementation (Bahmni Version 0.92)
  • Backup OpenMRS database

  • Ensure concepts have CEIL UUIDs by running the following script by replacing the username, password and the database:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # There are few concepts that are already in our database with same FULLY_SPECIFIED name! # Run the below queries to clean up those concepts mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Yes" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "No" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Unknown" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "140238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Fever" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "143264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Cough" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "141600AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Shortness of breath" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "158843AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Sore throat" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "139084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Headache" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "120749AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Chest pain" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "135367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Malaise and fatigue" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "5006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Asymptomatic" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Pulse" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "None" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1499AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Moderate" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1500AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Severe" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "73041AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "CEFTRIAXONE" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "71160AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "AMOXICILLIN" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "75222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "DOXYCYCLINE" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "POSITIVE" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Negative" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Abdominal pain" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "871AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Chills" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "5226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Weakness" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Joint pain" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "117399AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Hypertension" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "117703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Sickle-cell anemia" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "1252BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" where concept_id = (select concept_id from concept_name where name= "Not Applicable" and concept_name_type = "FULLY_SPECIFIED" );' mysql -u<username> -p<Password> <database> -e 'update concept set uuid = "5016AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" where concept_id = (select concept_id from concept_name where name= "Cardiomyopathy" and concept_name_type = "FULLY_SPECIFIED" );'
  • Deploy Covid19 Starter Kit

  • 1 2 3 4 5 #Download and install RPM file from Github yum install https://github.com/Bahmni-Covid19/bahmni-covid19-kit/releases/download/Release_v2.0.68/bahmni-covid19-installer-0.92-68.noarch.rpm #Install COVID-19 Vaccine kit sh /opt/bahmni-covid19-installer/install-vaccine-kit.sh

Next Steps:

These are the manual steps required as we want to have a new display control on the patient dashboard to see and edit the form and also a new display control to see the vaccine record(in case the patient took only one dosage) or the vaccine certificate(in case of both dosages.)

  1. To file /var/www/bahmniapps/clinical/index.html add the following script:

    1 <script src="/bahmni_config/openmrs/apps/customDisplayControl/js/customVaccinationCertificateControl.js"></script>
  2. To the file /var/www/bahmni_config/openmrs/apps/clinical/app.json, add the following content under "conceptSetUI": tag

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 "COVID-19-Starter, Vaccine Recipient Category": { "dropdown": true }, "COVID-19-Starter, Reason for not eligible for vaccine": { "multiSelect": true }, "COVID-19-Starter, Comorbidities": { "multiSelect": true }, "Vaccine lot expiration date": { "allowFutureDates": true }, "Date medication refills due": { "allowFutureDates": true }, "COVID-19-Starter, Side effects reported after vaccination": { "allowAddMore": true }, "COVID-19-Starter, Symptoms": { "multiSelect": true },
  3. To file /var/www/bahmni_config/openmrs/apps/clinical/dashboard.json add the following

    1 2 3 4 5 6 7 8 "Vaccination": { "type": "custom", "displayOrder": 25, "config": { "title": "DASHBOARD_TITLE_VACCINATION_KEY", "template": "<vaccination></vaccination>" } }
  4. To file /var/www/bahmni_config/openmrs/apps/clinical/formConditions.js add the following:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 'Eligible for Vaccine': function (formName, formFieldValues) { var eligibleValue = formFieldValues['Eligible for Vaccine']; if (eligibleValue == 'False') { var reasons = formFieldValues["COVID-19-Starter, Reason for not eligible for vaccine"]; var showList = ["COVID-19-Starter, Reason for not eligible for vaccine"]; return { show: showList } } else { return { hide: ["COVID-19-Starter, Reason for not eligible for vaccine", "Currently taking medication", "COVID-19-Starter, Others"] } } }, 'COVID-19-Starter, Reason for not eligible for vaccine': function (formName, formFieldValues) { var reasons = formFieldValues["COVID-19-Starter, Reason for not eligible for vaccine"]; var showList = []; var hideList = []; var showMed = false; var showOthers = false; for (i = 0; i < reasons.length; i++) { if (reasons[i] == 'Currently taking medication') { showMed = true; showList.push("Currently taking medication"); } else if (reasons[i] == 'COVID-19-Starter, Others') { showOthers = true; showList.push("COVID-19-Starter, Others"); } } if (!showOthers) { hideList.push("COVID-19-Starter, Others"); } if (!showMed) { hideList.push("Currently taking medication"); } return { show: showList, hide: hideList } }, 'COVID-19-Starter, New symptoms since vaccination': function (formName, formFieldValues) { var newSymptomsValue = formFieldValues['COVID-19-Starter, New symptoms since vaccination']; console.log(newSymptomsValue); if (newSymptomsValue == 'True') { var showList = ["COVID-19-Starter, Side effects reported after vaccination"]; return { show: showList } } else { return { hide: ["COVID-19-Starter, Side effects reported after vaccination"] } } }, 'COVID-19-Starter, Symptoms': function (formName, formFieldValues) { var reasons = formFieldValues["COVID-19-Starter, Symptoms"]; var showList = []; var hideList = []; var showOthers = false; for (i = 0; i < reasons.length; i++) { if (reasons[i] == 'COVID-19-Starter, Other') { showOthers = true; showList.push("COVID-19-Starter, Other"); } } if (!showOthers) { hideList.push("COVID-19-Starter, Other"); } return { show: showList, hide: hideList } }
  5. To the file /var/www/bahmni_config/openmrs/i18n/clinical/locale_en.json add the following:(if you are using English)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 "DASHBOARD_TITLE_VACCINATION_KEY": "Vaccination", "DASHBOARD_TITLE_APPOINTMENTS_KEY": "Appointments", "DASHBOARD_APPOINTMENTS_SLOT_KEY": "Slot", "DASHBOARD_APPOINTMENTS_SERVICE_KEY": "Service", "DASHBOARD_APPOINTMENTS_SERVICE_TYPE_KEY": "Service Appointment Type", "DASHBOARD_APPOINTMENTS_DATE_KEY": "Date", "DASHBOARD_APPOINTMENTS_PROVIDER_KEY": "Provider", "DASHBOARD_APPOINTMENTS_STATUS_KEY": "Status", "DASHBOARD_PAST_APPOINTMENTS_KEY": "Past Appointments", "DASHBOARD_UPCOMING_APPOINTMENTS_KEY": "Upcoming Appointments", "DASHBOARD_UPCOMING_APPOINTMENTS_KEY_LINK": "List View", "DASHBOARD_NO_PAST_APPOINTMENTS_KEY": "No past appointments", "DASHBOARD_NO_UPCOMING_APPOINTMENTS_KEY": "No upcoming appointments", "DASHBOARD_NO_VACCINATION_DETAILS_KEY": "No Vaccination Details", "DASHBOARD_COVID19_CERTIFICATE": "COVID-19 Certificate", "DASHBOARD_CERTIFICATE_OF_COVID19_VACCINATION_KEY": "Certificate of COVID-19 Vaccination", "DASHBOARD_COVID19_CERTIFICATE_NAME_KEY": "Name", "DASHBOARD_COVID19_CERTIFICATE_AGE_KEY": "Age", "DASHBOARD_COVID19_CERTIFICATE_SEX_KEY": "Sex", "DASHBOARD_COVID19_CERTIFICATE_DATE_OF_BIRTH_KEY": "Date Of Birth", "DASHBOARD_COVID19_CERTIFICATE_PASSPORT_NO_KEY": "Passport No", "DASHBOARD_COVID19_CERTIFICATE_ADDRESS_KEY": "Address", "DASHBOARD_COVID19_CERTIFICATE_VACCINE_DETAILS_KEY": "Vaccination Details", "DASHBOARD_COVID19_VACCINE_RECORD_KEY": "Covid-19 Vaccine Record", "DASHBOARD_COVID19_VACCINE_RECORD_TITLE_KEY": "Dose 1 of COVID-19 Vaccination been received and awaiting next dosage"
  6. to the file /var/www/bahmni_config/openmrs/i18n/clinical/locale_es.json add the following:(If you are using Spanish)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 "DASHBOARD_TITLE_VACCINATION_KEY": "Vaccination", "DASHBOARD_TITLE_APPOINTMENTS_KEY": "Cita", "DASHBOARD_APPOINTMENTS_SLOT_KEY": "Ranura", "DASHBOARD_APPOINTMENTS_SERVICE_KEY": "Servicio", "DASHBOARD_APPOINTMENTS_SERVICE_TYPE_KEY": "Tipo de cita de servicio", "DASHBOARD_APPOINTMENTS_DATE_KEY": "Fecha", "DASHBOARD_APPOINTMENTS_PROVIDER_KEY": "Proveedor", "DASHBOARD_APPOINTMENTS_STATUS_KEY": "Estados", "DASHBOARD_PAST_APPOINTMENTS_KEY": "Citas pasadas", "DASHBOARD_UPCOMING_APPOINTMENTS_KEY": "Citas futuras", "DASHBOARD_UPCOMING_APPOINTMENTS_KEY_LINK": "Vista de listado", "DASHBOARD_NO_PAST_APPOINTMENTS_KEY": "Sin citas pasadas", "DASHBOARD_NO_UPCOMING_APPOINTMENTS_KEY": "SIn citas futuras", "DASHBOARD_NO_VACCINATION_DETAILS_KEY": "No Vaccination Details", "DASHBOARD_COVID19_CERTIFICATE": "COVID-19 Certificate", "DASHBOARD_CERTIFICATE_OF_COVID19_VACCINATION_KEY": "Certificate of COVID-19 Vaccination", "DASHBOARD_COVID19_CERTIFICATE_NAME_KEY": "Name", "DASHBOARD_COVID19_CERTIFICATE_AGE_KEY": "Age", "DASHBOARD_COVID19_CERTIFICATE_SEX_KEY": "Sex", "DASHBOARD_COVID19_CERTIFICATE_DATE_OF_BIRTH_KEY": "Date Of Birth", "DASHBOARD_COVID19_CERTIFICATE_PASSPORT_NO_KEY": "Passport No", "DASHBOARD_COVID19_CERTIFICATE_ADDRESS_KEY": "Address", "DASHBOARD_COVID19_CERTIFICATE_VACCINE_DETAILS_KEY": "Vaccination Details", "DASHBOARD_COVID19_VACCINE_RECORD_KEY": "Covid-19 Vaccine Record", "DASHBOARD_COVID19_VACCINE_RECORD_TITLE_KEY": "Dose 1 of COVID-19 Vaccination been received and awaiting next dosage"
  7. /var/www/bahmni_config/openmrs/i18n/clinical/locale_fr.json add the following(if you are using French)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 "DASHBOARD_TITLE_VACCINATION_KEY": "Vaccination", "DASHBOARD_TITLE_APPOINTMENTS_KEY": "Appointments", "DASHBOARD_APPOINTMENTS_SLOT_KEY": "Slot", "DASHBOARD_APPOINTMENTS_SERVICE_KEY": "Service", "DASHBOARD_APPOINTMENTS_SERVICE_TYPE_KEY": "Service Appointment Type", "DASHBOARD_APPOINTMENTS_DATE_KEY": "Date", "DASHBOARD_APPOINTMENTS_PROVIDER_KEY": "Provider", "DASHBOARD_APPOINTMENTS_STATUS_KEY": "Status", "DASHBOARD_PAST_APPOINTMENTS_KEY": "Past Appointments", "DASHBOARD_UPCOMING_APPOINTMENTS_KEY": "Upcoming Appointments", "DASHBOARD_UPCOMING_APPOINTMENTS_KEY_LINK": "List View", "DASHBOARD_NO_PAST_APPOINTMENTS_KEY": "No past appointments", "DASHBOARD_NO_UPCOMING_APPOINTMENTS_KEY": "No upcoming appointments", "DASHBOARD_TITLE_VACCINATION_KEY": "Vaccination", "DASHBOARD_NO_VACCINATION_DETAILS_KEY": "No Vaccination Details", "DASHBOARD_COVID19_CERTIFICATE": "COVID-19 Certificate", "DASHBOARD_CERTIFICATE_OF_COVID19_VACCINATION_KEY": "Certificate of COVID-19 Vaccination", "DASHBOARD_COVID19_CERTIFICATE_NAME_KEY": "Name", "DASHBOARD_COVID19_CERTIFICATE_AGE_KEY": "Age", "DASHBOARD_COVID19_CERTIFICATE_SEX_KEY": "Sex", "DASHBOARD_COVID19_CERTIFICATE_DATE_OF_BIRTH_KEY": "Date Of Birth", "DASHBOARD_COVID19_CERTIFICATE_PASSPORT_NO_KEY": "Passport No", "DASHBOARD_COVID19_CERTIFICATE_ADDRESS_KEY": "Address", "DASHBOARD_COVID19_CERTIFICATE_VACCINE_DETAILS_KEY": "Vaccination Details", "DASHBOARD_COVID19_VACCINE_RECORD_KEY": "Covid-19 Vaccine Record", "DASHBOARD_COVID19_VACCINE_RECORD_TITLE_KEY": "Dose 1 of COVID-19 Vaccination been received and awaiting next dosage"
  8. Log on the openers UI:

    • Go to the Administration tab

      • Under Maintenance, click on Search Index

      • Rebuild Search Index

    • Then Go to Dictionary tab

      • Search for All Observation Templates

      • Edit Concept

      • Add “COVID-19-Starter, Vaccine Record” to this concept

      • Save the Concept

Fall back mechanism (To restore the system back to original state before COVID-19 package was installed)

  • Ask the user to take a back up of Openmrs database;

  • Remove Forms JSON files from below path:

    • home/bahmni/clinical_forms

    • /var/www/bahmni_config/openmrs/apps/forms/translations

  • Remove contents of /opt/openmrs/configuration 

  • Remove /opt/openmrs/modules/initializer-2.0.0.omod

  • Restore database

  • yum remove bahmni-covid19-installer.noarch

 

In case you want to install the other cover form, you can refer the following page:
https://bahmni.atlassian.net/wiki/spaces/BAH/pages/1670610952/Bahmni+COVID-19+Starter+Kit

Contact Us:

Praveena Dayanand<praveena.dayanand@thoughtworks.com>

Adhavan Kp<adhavan.kp@thoughtworks.com>

Ruchika Bhargava<ruchikab@thoughtworks.com>