Fix encounter drug order performance issues
Description of what I changed
I fixed performance and null pointer issues in the Drug Order API. I optimized the active order queries to only fetch drug orders when saving drug orders, eliminating unnecessary database queries. I also added proper null checks in failOnOrderTypeMismatch and areDrugOrdersOfSameOrderableAndOverlappingSchedule methods to prevent potential null pointer exceptions. Additionally, I added comprehensive test coverage to verify the performance optimization works correctly.
Issue I worked on
This addresses performance issues in drug order conflict checking and potential null pointer exceptions in OrderService validation methods.
Checklist: I completed these to help reviewers :)
- [x] My IDE is configured to follow the code style of this project.
No? Unsure? -> configure your IDE, format the code and add the changes with
git add . && git commit --amend - [x] I have added tests to cover my changes. (If you refactored existing code that was well tested you do not have to add tests)
No? -> write tests and add them to this commit
git add . && git commit --amend - [x] I ran
mvn clean packageright before creating this pull request and added all formatting changes to my commit. No? -> execute above command - [x] All new and existing tests passed. No? -> figure out why and add the fix to your commit. It is your responsibility to make sure your code works.
- [x] My pull request is based on the latest changes of the master branch.
No? Unsure? -> execute command
git pull --rebase upstream master
@isaacmujuni have you had a chance to go through this? https://openmrs.atlassian.net/wiki/spaces/docs/pages/25477199/Pull+Request+Tips ?