Community Bonding

The community bonding period for GSoC 2020 extended from May 4, 2020 to May 31, 2020. Since the four-week long community bonding is now almost complete and the coding period (Phase - I) is on the verge of commencing, I'd like to share my experience working during the same through this blog.

Reading Documentation

The community bonding period gave me an opportunity to go through the code base. This helped me in understanding all the functionality that has been implemented in the FHIR module, particularly the search part of it. Since the paging implementation had already begun by the time projects were announced, I got an overview of what all changes had been made to the code base to support it and what all will be required to be added to the resources that do not support paging currently.

I also read a lot of documentation regarding my project, including the HAPI FHIR library on search and interceptors. Since my project includes implementing Lucene queries and integrating GraphQL with the FHIR module as a stretch goal, I also got a chance to look into those aspects as well.

Coding Shouldn't Stop

On the coding side, I got my hands dirty on various issues in the FHIR module. While going through the code for FHIR search, I found some bugs and created JIRA tickets for the same and rectified them. I also worked on implementing search for some resources like DiagnosticReport which didn't have the functionality. The list of issues I worked on in the community bonding period is as follows:

Planning for Phase-I Coding Period

An important part of the community bonding period is to plan for the work to be done in the coding period and get to know your mentors. I had several conversations with my mentor, Ian Bacher, where we used to discuss the goals and the expectations for the coding period and also got to know each other in a better way. We also talked about any issues that I faced and discussed on ways of resolving them.

We decided to create JIRA tickets for issues as and when I start working on them and hence worked out the goals for phase-I of the coding period. The two major things I'll be working on are implementing the common search parameters, including _id and _lastUpdated, and implement paging for resources which currently do not support it. The JIRA tickets for the same can be found below:

Project Status

The Improve FHIR Search project is in progress and I have already started working on the paging tickets. I was supposed to work on implementing the functionality for the common search parameters first, but owing to a lot of non-uniformity in the code base because some resources have paging implemented and some don't, my mentor and I decided to first work on paging and then implement the common search parameters after the code base becomes balanced.

Project Discussion Thread: The public discussions related to my project can be found on this OpenMRS Talk thread.

Github Repositories: