Curent structure
Management of the version
openIMIS use a type 2 database were a row is added when a record is changed; there is two reasons:
Auditing
This enable to see the historical record in order to see who made which changes
Manage multiple version of a record
For some tables the business logic will refere to version of a record valid at the time of claim submision
Management of the reference to versionned records
The reference use the rowid for the versionned Item which can ease the joining but complexify agregations mostly for the Item that just need auditing.
Future structure
Management of the version
With the modular architecture, mutation table were added into the picture, those table could easily answer the auditing needs but it is unlikely to be a suitable solution to manage the versionned record because recreating past record from the mutation will consume too much compute power.
Most of the Item that needs verisioning might also need update without publishing a new version, on the other end new version validity date need to be configured by the users
List of table that needs versioning:
Benefit package: required to assess claim visit type limit, ceiling, deductible …
Benefit package Services: required for assess Child / Adult ceiling, Amount limits, limit exclusiosn and relative pricing
Benefit package Items: required for assess Child / Adult ceiling, Amount limits, limit exclusiosn and relative pricing
Medical Item: tblItems required to assess frequency and mask of service: Is it really needed ?
Medical Product: tblService required to assess frequency, service type and category and mask of service: Is it really needed ?
Medical Item Price List : needed to unsure the agreement update are taken in account for the right claims
Medical Item Price List Items details : tblPLItems
Medical Services Price List: needed to unsure the agreement update are taken in account for the right claims
Medical Service Price List Service details : tblPLService
Health facility (for price list, type of care and catchement)
Location:Villages (for population)
Management of the reference to versionned records
The strategy to reference to versionned Item should be discussed