Concepts
The pricing for the same benefit plan may differ from a sector to another; the «Contribution plan» are to define different cost/pricing rules and the payment periodicity (in a month) for a given Benefit plan.
A benefit package (product in IMIS) can have multiple Contribution plans attached meaning different insurees may have different contributions level (or/and different calculation) but contribute to the same pool. The Contribution plans will have parameters such as maximum payment delay, grace periods.
A given policyholder (e.g company) may have to subscribe to multiple benefit plans for each his insuree(e.g employee ) (basic health insurance, advanced health insurance, accident*, retirement*);
The "Contribution plans bundle" groups "Contribution plans" to ease the assignation of multiple Contribution plans to a policyholder insuree (e.g. employee). The Contribution plans part of the same bundle must have the same periodicity.
The Contribution plans and Contribution plans bundle might also be usable by the direct insurance/informal sector, but some code change is likely and not covered by this solution
Use cases
Contribution plan bundle:
Managing a contribution plan bundle should be possible for the SchemeAdmin
Web application
- UC10-1: Search: contribution plan bundles List > use the search box > search, the default list will show only the active (not deleted and today between dateValidFrom/To) contribution plan bundle
- UC10-2: Add: contribution plan bundle List > 'add' contribution plan bundle > fill the details on the contribution plan bundle page > save
- UC10-3: Update: contribution plan bundles List > "Select" contribution plans bundles > update the details on the contribution plan bundle > save
- UC10-4: Delete: contribution plan bundle List > "Select" contribution plan bundle > "Delete (this role should be only available to admin, others should only archive by setting the DateValidTo)
- UC10-5: Replace: contribution plan bundle-> List contribution plan bundle List > "Select" contribution plan bundle > update the details on the contribution plan bundle, update the contribution plan > replace version > add ValidityTo (DateValidTo of the to-be-replace CPB will be set are the Validity from the new CPB )
backend
- UC10-6: Replacing / removing propagation to policyholder contribution plan bundle
- UC10-7: Replacing / removing propagation to policyholder insuree contribution plan bundle
Contribution plan
Managing a contribution plan bundle should be possible for the SchemeAdmin
Web application
- UC8-1: Search: contribution plan List > use the search box > search, the default list will show only the active(not deleted and today between dateValidFrom/To) contribution plan
- UC8-2: Add: contribution plan List > 'add' contribution plan > fill the details on the contribution plan page > save
- UC8-3: Update: contribution plan List > "Select" contribution plan > update the details on the contribution plan > save
- UC8-4: Delete: contribution plan List > "Select" contribution plan > "Delete (this role should be only available to admin, others should only archive by setting the DateValidTo)
- UC8-5: Replace: contribution plan bundle List > List contribution plan > "Select" contribution plan > update the details on the contribution plan > create a new version > add ValidityTo (DateValidTo of the to-be-replace CPB will be set are the Validity from the new CPB )
backend
- UC8-6: Replacing / removing propagation to contribution plan bundle
Back end module Details design
Authorities
To manage the group insurance several authorities will be added,the prefix of this module will be 151
ContributionPlanBundle, prefix 1511
Search → 151101
Create → 151102
Update → 151103
Delete → 151104
Replace → 151106
ContributionPlan, prefix 1512
Search →151201
Create → 151202
Update → 151203
Delete → 151204
Replace → 151206
Roles
SchemeClerk( Clerck)
ContributionPlanBundle
R
ContributionPlan
R
SchemeAdmin*
ContributionPlanBundle
C/R/U/D
ContributionPlan
C/R/U/D
PolicyHolderClerk
ContributionPlanBundle
R
ContributionPlan
R
Entities
ContributionPlanBundle(HistoryBusinessModel)
- Code (varchar)*
- Name (varchar)
ContributionPlanBundleDetails - under ContributionPlanBundle (HistoryBusinessModel)
- ContributionPlanBundleUUID: (fk ContributionPlanBundle)*
- ContributionPlanUUID: (fk_contributionPlan)*
ContributionPlan(HistoryBusinessModel)
- Code (varchar 32)
- name(varchar 256)
- CalculationUUID
- BenefitPlanUUID (fk_product )
- Periodicity (int)
- Number of month between 2 payment
Amendment (0 for the contract)
Grace Period,Rate,Threshold will be stored on the json_ext part of HistoryModel
Services and Mutations
- C/U/D service ContributionPlanBundle
- check authority
- ensure Code uniqueness for ValidTo/ValidFrom
- Ensure mandatory fields are present
- code not editable once created
- Ensure that the periodicity for the contribution plan are the same
- Ensure that the detail DatevalidFrom is greater or equal to CP DatevalidFrom
- Ensure that the detail DatevalidTo is lesseror equal to CP DatevalidTo or DatevalidTo is null
- Replace ContributionPlanBundle
- Keep the code
- normal HistoryBusinessModel replace
- C/U/D service ContributionPlan
- check authority
- ensure Code uniqueness for ValidTo/ValidFrom
- Ensure mandatory fields are present
- code not editable once created
- Replace ContributionPlan
- Keep the code
- normal HistoryBusinessModel replace
Front end detailed design
The list of Contract should use the same layout as other existing list in openIMIS (claims, insuree ...).
Menu
Contract menu item should be located under the main menu "Insuree and policy".
ContributionPlan search page
ContributionPlan search criteria
- Code (string)
- name (string)
- DateValidFrom
- DateValidTo (if empty show all CP valid at DateValidFrom, if not, show all CP which were valid a some point between DateValidForm and DateValidTo)
- periodicity (int)
- option to show deleted
- button to apply search criteria
- Button to reset search criteria
ContributionPlan search result column
- code
- name
- calculation (contribution_fe)
- insurance Product (contribution_fe)
- periodicity
- DateValidTo
- DateValidFrom
Delete (Trash) and Edit (Pen) buttons at the end of the line
MaterialUI :plus: to add a ContributionPlan
Double click or click on Edit button to update a PolicyHolder.
ContributionPlan card
- code (mandatory, not editable once created)
- name (mandatory)
- calculation (contribution_fe) (mandatory)
- insurance Product (contribution_fe) (mandatory)
- periodicity (mandatory)
- DateValidTo (mandatory)
- DateValidFrom
The material (Save) UI button will save the changes
ContributionPlanBundle search page
search criteria
- Code (string)
- name(string)
- DateValidFrom
- DateValidTo
- calculation (contribution_fe) (look inside the Contribution plans of the bundle)
- insurance Product (contribution_fe) (look inside the Contribution plans of the bundle)
- periodicity (look inside the Contribution plans of the bundle)
- option to show deleted
- button to apply search criteria
- Button to reset search criteria
search result column
- code
- name
- DateValidTo
- DateValidFrom
Delete (Trash) and Edit (Pen) buttons at the end of the line (see Location module)
MaterialUI :plus: to add a ContributionPlan
Double click or click on Edit button to update a PolicyHolder.
ContributionPlanBundle card
- code (mandatory, not editable once created)
- name (mandatory)
- DateValidTo (mandatory)
- DateValidFrom
- LIST of the contribution plan part of the bundle (ContributionPlanBundleDetails)
- Column
- name
- code
- product
- periodicity
- DateValidTo (from the details not from CP)
- DateValidFrom (from the detailsnot from cp)
- replace and delete button
An empty line at the top of the list with the :plus: add button in place of delete, once filled, new empty line should be displayed. or a + button that open a popup
- Column
The material (Save) UI button will save the changes