Within this week I did complete the task PTM-82 and have already made the pull request.
Saving the report to a persistent storage is more important in this incremental process as any run after that depends on the previous report's properties. Task PTM-83 was created targeting that very important requirements. I have almost completed this task in this week.
Things I did to get the work done in PTM-83
Concerning on the previous report, there was need for create a method to update the properties of the new report.This is not just updating an object. What made me to say this? Consider the following database table,
In the above table all the pending matches are going to be shown as long as user mark them as accepted or rejected. So what happens if the user runs a strategy which already has a report and set of records in the above table?
Let me give you an example suppose the user runs a strategy which already has a report (take report ID as 48) according to the above table it has 13 records (from set_id 125 to 137). According to the process of incremental matching it considers only the patients whose record has changed or patients who are newly added to the system after the last ran date of the above report. Let's say the match has completed and there can be two cases,
1. A patient record in a matching pair might already exists in the above table. (Take the new patient as PatientA and the it showed a match with 126th set_id)
2. Non of the patient records in the matching pairs are not in the above table.
If the match process comes across the 2nd possibility we do not have to concern more it is just an update of the table but issue comes in the 1st possibility. If it is the case we have to insert the patient record(PatientA) to the same group id, in this scenario group_id is 9. Not only that all other patient records which exhibited a matching property with that patient PatientA should come to the same group id 9 under the report_id 48.
This is the code that I wrote for this task.
More details about the changes can be found here.
Within this week I also thought to lay the foundation for the next task as well. A ticket has been created for the the task by name PTM-84. The main target of this task is to perform the match with all the records. In the current version it only allows to perform match with the same set of records by the property of deduplication.