GSoC 2020 at OpenMRS | Week 10
The tenth week of the coding period for GSoC'20 began on 3rd August and ends today i.e. 9th August. It was a good week in terms of work but there were some problems faced as well during the process. I managed to complete the _revinclude implementation for all the resources and started working on the integration tests for some resources.
Firstly, while working on the integration tests for MedicationRequest, I found out that it was not as easy to support create, update and delete for Orders, because we didn't have a lot of information to construct the OrderContext. I discussed it with my mentor, Ian Bacher, and we decided to not provide this functinality in the initial version of the module because it didn't seem as easy as we expected it to be.
I ran into the second issue while implementing integration tests for Location resource. The POST request for creating resources using the specified JSON or XML file is not taking into account the specified "id", thus resulting in the created resource to have a "null" UUID. I have not been able to find a fix for this yet and will discuss the same with my mentor to correct the functionality. But as a weird fact, the JSON and XML "id" is picked up properly in a PUT request for updating the resource.
Have a good day! See you next week...
Challenges Faced
As is always the case, bugs and blockers don't tend to leave developers. There were a couple of issues faced during the Week 10 development.Firstly, while working on the integration tests for MedicationRequest, I found out that it was not as easy to support create, update and delete for Orders, because we didn't have a lot of information to construct the OrderContext. I discussed it with my mentor, Ian Bacher, and we decided to not provide this functinality in the initial version of the module because it didn't seem as easy as we expected it to be.
I ran into the second issue while implementing integration tests for Location resource. The POST request for creating resources using the specified JSON or XML file is not taking into account the specified "id", thus resulting in the created resource to have a "null" UUID. I have not been able to find a fix for this yet and will discuss the same with my mentor to correct the functionality. But as a weird fact, the JSON and XML "id" is picked up properly in a PUT request for updating the resource.
Tickets worked on during Week 10
The plan for this past week was to complete _revinclude feature implementation for the remaining resources and then start on the integration tests for the FHIR module. I completed _revinclude and worked on implementing integration tests for a couple of resources. Also, there was a not-so-good functionality for the DiagnosticReport resource, wherein we were originally returning all Obs instead of just those which were an Obs grouping. I worked on this issue and added a criterion to the search which restricted the results to only Obs groupings. I worked on seven issues this week and the JIRA tickets for them are as follows:- Add Integration Tests for Location (Status: In Progress)
- Add Integration Tests for MedicationRequest (Status: Merged)
- Fix DiagnosticReport to return Obs having group members (Status: Merged)
- Update Medication resource to support _revinclude (Status: Completed but PR not created yet)
- Update Observation resource to support _revinclude (Status: Completed but PR not created yet)
- Update Practitioner resource to support _revinclude (Status: Completed but PR not created yet)
- Update Patient resource to support _revinclude (Status: Completed but PR not created yet)
Plan for Week 11
In the next week, I'll be focussing on completing integration tests for Location resource and pick up a few more resources. I will also start working on refactoring the _include and _revinclude commits because GSoC is coming to an end and we would like to have those merged into master, soon after the release of the FHIR module. The commits for now are in my local desktop and we would want to push them to a separate tracking branch till the initial version of the module is not released.Have a good day! See you next week...