Monday, May 22, 2023

GSoC 2023 at OpenMRS | Community Bonding Period


This Blog post is meant to give an update about my experience with OpenMRS as we start this year's Google Summer of Code. The community bonding period is about three weeks long and it is  meant to give the student the opportunity to interact with the opensource community and above all get to know his/her mentors, get themselves involved in the project they are supposed to work on when the coding period begins by reading documentation, code and any other related material.

Abstract

OpenMRS is an open source software project that offers an EMR that ensures patient care is a seamless process. As an open source community, the warmth is felt the moment you introduce yourself since there are so many people willing to spare a moment or two in order to show you around. That's the same culture Incase one has an issue to raise or a blocker. 

The email from GSoC team lead congratulating me upon being selected for this year's GSoC brought me chills allover since this was my second time applying for GSoC with OpenMRS but i had failed on the previous attempt. I hope to make the most of it and kickstart my career in open source software development.

About the Project

Name: Add Support For FHIR Patch Operations 

Description: OpenMRS is using the FHIR API more and more in place of the REST API. However, the FHIR API is, by default, quite verbose. Supporting PATCH operations would allow us to support partial updates to FHIR resources without needing to send the whole resource from the client to the server.

Mentors: Ian Bacher and Abert Namanya

Community Period

OpenMRS community is very open and welcoming. Community members have lots of experience and knowledge. They always ready to help you, especially when you are a beginner. They provide you the resources and guide you as well.

I have been in touch with my project mentors and we have created a recurring weekly meeting to meet and digest the project even more. During this period, i have gone through the available resources on patch operations and how various FHIR implementations have implemented them. I have also had the chance to read the entire OpenMRS Fhir2 Module documentation and codebase so that i can get to understand what is taking place in the implementation of HL7/FHIR Standards by OpenMRS.

I have created an Epic in JIRA to track all the tickets that i will be working on throughout  this whole coding period. The Epic can be found at https://issues.openmrs.org/browse/FM2-573  

 Cheers and Happy coding!

Resources

Friday, March 31, 2023

My Open Source Journey



While at campus, i got to learn of open source software technology from a friend who was at the time contributing actively to one open source software called OpenMRS. He encouraged to find time and contribute to open source because among the dividends, he stated that i would gain experience and get exposed to the outside world hence landing a juicy remote software development job.

OpenMRS is a global community of truly dedicated, talent and generous contributors who build and maintain the OpenMRS Platform and other , foundational OpenMRS technical products. The OpenMRS Platform is used by implementers to create a customized EMR system depending on the needs on ground.

The early days of me joining OpenMRS weren't as smooth for me because the source code seemed too big for me and too much so i kind of held off in trying to contribute and learn. It is after a while that i was introduced to the Quality Assurance Squad and i was gradually mentored by the Engineers in there who were at the time doing their fellowship. Sharif Magembe and Kakumirizi Daud really played a big role in me learning the various technologies used in the QA squad like Selenium, Cypress, Cucumber BDD Framework. I contributed in that squad for about a year and each day i spent writing various test automation scripts/workflows seemed like a dream because i never believed i could ever write code for an organization like OpenMRS.
 
My volunteering experience at OpenMRS has enabled me to learn among others;-
  • collaboration and team work.
  • code reviewing.
  • pair programming.
  • Java, gherkin, FHIR, hibernate and spring framework.
  • software testing. 
My interaction with the OpenMRS community has been a very wonderful experience since everybody is out there to help on any bugs, blockers one could be having with some developers going an extra mile to guide and mentor in whatever section you could be interested in i.e backend, frontend, QA, DevOps, UI/UX Designer. 

While at OpenMRS, last year i got a chance to serve and contribute as a Platform 2.6.0 Release Manager and it was an immense experience for me as i got to interact directly with the senior developers like Daniel Kayiwa, Ian Bacher, Burke and i got to learn how things like docker, GitHub Actions, releases, maven work. The experience even earned me an upgrade in the Dev badge from Dev 1 to Dev 2 which to me is a dream come true as i endeavor to continue learning and growing in the community. I was also honored to represent the platform team at the virtual openmrs mini-community conference.

Currently I have concentrated more on improving the openmrs-core API by working on issues/tickets that are supposed to switch from hibernate XML mappings to using jpa annotations. I have also embarked on creating a module using the Procedure Fhir resource so that I can be able to understand how the openmrs module architecture.

Aluta continua .....