GSoC 2023 with OpenMRS | Coding Week 03

Shubham Sharma
3 min readJun 19, 2023

--

Welcome back to my blog series documenting my journey through the Google Summer of Code program. In this latest update, I’ll be sharing the significant progress I’ve made during the third week of the coding period. Let’s delve into the details!

1. Completing Key SDK Components:

Over the past week, I dedicated my time to wrapping up the development of three vital components of the SDK: the Visit endpoint, the Encounter endpoint, and the Observation endpoint. These components are the most fundamental and core part of any EMR system.

Enhancing Filtering Functionality:

To provide users with more control and flexibility, I integrated powerful filtering functionality into the SDK. Users can now leverage APIs based on various criteria, such as the “Location of the Visit,” “Date of the Visit,” and whether a visit is “Active” or “Inactive.” Importantly, these filtering APIs support both online and offline operations. This means that users can efficiently filter visit data from either the local database or the remote server, depending on their requirements.

Here’s the PR:

As part of our roadmap, a comprehensive Visit filter demo is being developed for inclusion in the sample app. This demo will showcase the full functionality of the newly added filtering APIs. However, I have planned to present this demo after the first evaluation to ensure that it reflects the latest updates and enhancements to the SDK.

At present, my primary focus is on enriching the SDK further by incorporating additional APIs and features. By continuously expanding the SDK’s functionality, we aim to empower developers and provide them with a comprehensive toolkit that meets their evolving needs.

2. Appointment Scheduling: The new feature

This addition addresses a crucial gap in the current SDK. Up until now, the SDK lacked any functionality related to Appointment Scheduling which is already an essential part of the OpenMRS module. Recognizing this limitation, I discussed the task of integrating this essential feature into the SDK with my mentor Rishabh.

To begin, I focused on creating the necessary model classes to support Appointment Scheduling. These included the Appointment class, the Appointment Block class, the TimeSlot class, and the AppointmentType class.

Kicking Off the Integration:

With the model classes in place, I proceeded to add retrofit interface functions specific to Appointment Scheduling. These functions serve as the foundation for seamlessly integrating the Appointment Scheduling module into the SDK.

Understanding the Appointment Scheduling Module:

To ensure a comprehensive integration and a solid grasp of the Appointment Scheduling functionality, I dedicated time to thoroughly understand the module. This involved immersing myself in the relevant wiki pages, where I gained valuable insights into the module’s architecture. By studying these resources diligently, I aim to minimize the chances of overlooking any critical details and ensure a robust integration of the Appointment Scheduling feature.

Looking Ahead:

My commitment to fully understanding the Appointment Scheduling module has equipped me with a solid foundation to proceed with the integration process. Armed with this knowledge, I’m confident that I can deliver a seamless and intuitive experience for SDK users. Moving forward, I’ll continue to explore the intricacies of this module and implement the necessary functionalities in line with project requirements.

Thank you for reading and stay tuned for week 3 progress :)

Connect with me on LinkedIn: www.linkedin.com/amshubham

--

--