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 on the create card > save
- UC10-3: Update: contribution plan bundles List > "Select" contribution plans bundles > update the details on the contribution plan bundle card > save
- UC10-4: Delete: contribution plan bundle List > "Select" contribution plan bundle > "Delete > confirmation popup
- 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 on the replace card > Create a new version
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 create card> save
- UC8-3: Update: contribution plan List > "Select" contribution plan > update the details on the contribution plan edit card> save
- UC8-4: Delete: contribution plan List > "Select" contribution plan > "Delete > confirmation popup
- UC8-5: Replace: contribution plan bundle List > List contribution plan > "Select" contribution plan > update the details on the contribution plan on the replace popup > create a new version
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)
- Periodicity (int)
Cade is mandatory
ContributionPlanBundleDetails - under ContributionPlanBundle (HistoryBusinessModel)
- ContributionPlanBundleUUID: (fk ContributionPlanBundle)*
- ContributionPlanUUID: (fk_contributionPlan)*
All fields are mandatory
ContributionPlan(HistoryBusinessModel)
- Code (varchar 32)*
- name(varchar 256)*
- CalculationUUID*
- BenefitPlanUUID (fk_product )*
- Periodicity (int)*
- Number of month between 2 payment
Grace Period,Rate,Threshold will be stored on the json_ext part of HistoryModel
All fields are mandatory
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 contribution plan & bundle should use the same layout as other existing list in openIMIS (claims, insuree ...).
Menu
contribution plan & bundle menu item should be located under the main menu "administration".
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 ContributionPlan.
It should be possible to sort the result per column in ASC or DESC order
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)
- periodicity (int)
- 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)
- option to show deleted
- button to apply search criteria
- Button to reset search criteria
search result column
- code
- name
- periodicity
- DateValidTo
- DateValidFrom
Delete (Trash) and Edit (Pen) and replace buttons at the end of the line (see Location module)
MaterialUI :plus: to add a ContributionPlanBundle
Double click or click on Edit button to update a ContributionPlanBundle .
It should be possible to sort the result per column in ASC or DESC order
Add a contribution plan bundle
When clicked on add the ContributionPlanBundle card open
Edit a contribution plan bundle
When click on edit, the ContributionPlanBundle card open, all fields but CODE and periodicity can be edited (ValidityFrom,ValidityTo, Name)
Replace a contribution plan bundle
When click on replace, the ContributionPlanBundle card open, all fields but CODE can be edited (ValidityFrom,ValidityTo, Name, periodicity )
The new version won't have any contribution plan attached
ContributionPlanBundle card
- code (mandatory, not editable once created)
- name (mandatory)
- periodicity (Mandatory)
- DateValidTo (mandatory)
- DateValidFrom
Contribution plan part of the contribution plan bundle
column for the list of contribution plan (no search)
- name
- code
- product
periodicity(Not required anymore)- DateValidTo (from the details not from CP)
- DateValidFrom (from the detailsnot from cp)
- replace, edit and delete button
a add button should be placed on the top right of the list,
Add a contribution plan in the bundle
When clicked on add the create popup will be displayed, Mandatory fields have *, Not editable have #
- CPB(not displayed)
- contribution plan selected* (shows only CP with the same periodicity)
- DateValidFrom* (from the details not from CP)
- DateValidTo
Edit a contribution plan in the bundle,
When clicked on edit the update popup will be displayed, Mandatory fields have *, Not editable have #
- CPB(not displayed)
- contribution plan selected#
- DateValidFrom# (from the details not from CP)
- DateValidTo
Replace a contribution plan in the bundle
When clicked on replace the replace popup will be displayed, Mandatory fields have *, Not editable have #
- CPB(not displayed)
- contribution plan selected*
- DateValidFrom* (from the details not from CP)
- DateValidTo
The material (Save) UI button will save the changes