hey everyone,
I’m Manoj Rathnariya, a participant in Google Summer of Code 2024, working on the project Validating and updating openMRS patient flag module. My project aims to improve the performance of the module, add java 17 support and add mapping between FHIR flag resource and openmrs flag data model.
I would like to invite the OpenMRS community to test the module and provide feedback.
How to Test the Module
pre- Requirements
Java ( 8, 11, 17)
Maven
o2 refApp ( if not setup o2 refApp yet, you can setup it from here)
Setup the project
- Clone the module from github : GitHub - openmrs/openmrs-module-patientflags: Provides a mechanism for marking patient records with important messages within OpenMRS
- checkout to clone project :
cd <root>/openmrs-module-patientflags
- build the project :
mvn clean install
- run the refApp :
mvn openmrs-sdk:run -DserverId=<server name>
- login to o2 username : admin / password: Admin123
(http://localhost:<server port>/openmrs/login.htm)
- go to system administration → advanced administration → manage module → add or update module
- here you can upload the module omod file which is in
<roo>/openmrs-module-patientflags/omod/target/patientflags-3.0.8-SNAPSHOT.omod
Add Flag Tags, Priority and Flags
after uploading the flag module go to advanced administarting screen and scroll down then you can see the flag module functions .
- Add a priority : provide a name, style and rank . The style is how the flag should disply is patient dashboard (style=“background-color:red” : shows flag in red color) rank is used to set the flag order if we provide 1 that flag listed in first.
-
Add a Tag :
manage tags -> add tag
- you can add flag tag by providing a tag name and tag role ( the flags are shows based on the roles you provided) -
Add flag :
manage flags -> add flag
- we can add three type of flags. I prefer to add SQL type flag and it is easy to add. When adding a flag you have to provide a priority and flag tag.
sample sql flag queries :
DRUG allergy :
SELECT a.patient_id FROM allergy a where a.allergen_type = "DRUG";
Food allergy :
SELECT a.patient_id FROM allergy a where a.allergen_type = "FOOD";
Systolic blood pressure over 125 :
SELECT e.patient_id from obs o inner join encounter e on e.encounter_id = o.encounter_id where o.concept_id = 5085 and o.value_numeric >= 125 AND o.voided = 0;
Pulse below 50 :
SELECT e.patient_id from obs o inner join encounter e on e.encounter_id = o.encounter_id where o.concept_id = 5087 and o.value_numeric < 50 AND o.voided = 0;
Evaluate Flags for patient
Evaluate all flags with all patients :
patient flag module -> evaluate all flags
generate flags for patient in visits ( encounter) : when you adding visit or encounter happens for patient, module will generate flags for patients.
Get flagged patients for a flag :
patient flag module -> find flagged patient
- in the find flag patient section you can get the flagged patients for a flag
We can view the generated flags for patients in the Patient Dashboard under the Patient Flag section
Feedback Areas
- Functionality: Does everything work as expected?
- Performance: Are there noticeable improvements?
- Suggestions: Any features or improvements you would like to see?
Thank you for your time and support. I look forward to your valuable feedback!