Decentralized iHRIS Data Policy
Suppose that we are interested in setting up a decentralized implementation of iHRIS Manage in the country Taifeki. Let us assume we are going to work on a three tier implementation: national, region and district. We will show how to take advantage of [1] to maintain the various customizations needed for each of the sites.
Data Management
We first need to decided on a data management policy that is compatible with our data structure.
Decentralized Data Structure
Our decentralized data module is "vertical" in that it allows data to flow from the district to the region to the national level. It also allows that the data flow in the reverse direction. We do not allow data to flow "horizontally." In other words, we do not have a mechanism for the data on a person in district A to be given to district B.
We always that there is only one site that can write each data component. A data block consists of all the data for one form in one site. Examples of data components are:
- all the jobs at the national level
- all of the facilities in a specific region
- all of the positions in a specific district
Data Management Policy
These questions need to be answered:
- Who can see which data?
- (Examples) Should a district be able to see the facilities in another district?
- Who can edit which data?
- (Examples)Who maintains the list of facilities? The jobs? The positions? Is it at the national, regional or district level?
These questions need to be answered for all the forms within iHRIS Manage and all sites (national, regional and district-level).
Example
If you decide that each facility is maintained at the regional level. This means the following:
- At the national level, the facility data needs to be componentized by regions and the facility and facility_contact forms will use the (read-only) multi-flat storage mechanism to aggregate the cached data tables from the regional level.
- At the regional level, the facility data is not componentized. Since the facility and facility contact information is not subject to frequent changes and you do not need to keep track of the history, you would choose to use the (read-write) magic data form storage mechanism in your data policy.
- At the district level, the facility and facility contact data is exported from the region within two modules: ihris-manage-taifeki-northern-region-facility and ihris-manage-taifeki-northern-region-facility_contact. You would choose to use (read-only) magic data form storage mechanism in your data policy.
Launchpad
Team
Create a launchpad team, called ihris-taifeki, which you and all members of your development team will join.
Project
Create a launchpad project called ihris-manage-taifeki which is owned by the ihris-taifeki team.
Series
Within the ihris-manage-taifeki we will create a Series for each tier of of structure. As we are working with iHRIS Manage 4.0, we will also want to indicate that in the Series name. Each series will contain all of the sites that exist on that tier. Here are series we will create:
- national-4.0 One site, the national site which aggregates from all the regions
- region-4.0 One site for each regions, each region will aggregate from all the districts contained within it
- district-4.0 One site for each district
Modules
Data Policy Module
Within each of the series we will, create the modules as appropriate:
- ihris-manage-taifeki-national-data-policy
- ihris-manage-taifeki-regional-data-policy
- ihris-manage-taifeki-district-data-policy
which defines the form storage/data management policy for that tier and which requires ihris-manage. If the data for a form is contained in a module that it should also require that module:
- Each site on regional level will require the ihris-manage-taifieki-regional-data-policy module.
- Each site on the district level would require ihris-manage-taifieki-district-data-policy. Also, in the example above, for any district in the northern region, we would have it's site module require ihris-manage-tafaiki-northern-region-facility and ihris-manage-tafaiki-northern-region-facility_contact.