Formal Sector Modules
Digital Square D1 proposal: Support for Formal Sector schemes and Configurable Claims Workflow in openIMIS
Teams:
Swiss TPH (@Patrick Delcroix @Dragos Dobre @Siddharth Srivastava)
SolDevelo (@Kamil Madej (Deactivated) @Damian Borowiecki (Deactivated), @Beata Komorowska (Deactivated) , @Rafał Stencel (Deactivated) , @Seweryn Niedzielski , @Joanna Bebak (Deactivated) )
Concepts and interaction with openIMIS
The goal of this development is to reuse the openIMIS people and family registration, claim management and the logic to extend the coverage to the family members.
This module will add a new enrollment methods, the Group enrollment: A Policy Holder (a enterprise in case on Nepal) will take policy on the behalf of its employee and their famillies.
the relationships will be:
Every period (monthly in case of Nepal), a contract will be created between the policy holder and each enterprise.
The periodicity will depend on the contribution plan and therefore will be configuration
The same insurance product could have different contribution plan therefore different contribution periodicity
Every covered employee will be mentioned in the contract along with the list of insurance product that will be part of their coverage.
once the contract validated and paid, the policy of the emöployee and their family will be activated for the period covered by the contract
the period of the contract doesn’t have to be the period of the policy: this will enable having coverage limits (max amount, max surgery …) that could be shared for several periods
In case of a insuree have multiple employers, the system will activate only one policy per product.
insuree should be able to move between the formal and informal sector
Objectives
This project aims to develop the "Formal Sector" features requested by institutions in charge of developing health financing schemes in Nepal, in particular the management of enrolment of the insuree as part of an insurance group.
Here are the high-level use cases to be covered by this design:
Manage group insurance
UC1 - The Scheme Administrator wants to manage the policy holder insurees and their policy entitlement. (includes UC2 from the proposal)
UC3 - The Scheme Administrator wants to manage the policy holder contract.
UC4 - The Scheme Administrator wants to manage the policy holder contract payment.
UC5 - The Scheme Administrator wants policy holders insuree policies covered by a contract to auto activate based on policy holders contract payment.
UC7 - The Scheme Administrator wants to manage policy holders.
Contribution Plan and Contribution Plans Bundle to manage the Policy Value
UC8 - The Scheme Administrator wants to add a Contribution plan (pricing rules linked to an insurance product).
UC9 - The Scheme Administrator wants to be able to configure the calculation parameters in the Contribution plan.
UC10 - The Scheme Administrator wants to add a Contribution Plan Bundle.
UC11 - The Scheme Administrator wants to enable some Contribution Plan Bundles per policy holder.
Policy holder Portal
UC12 - The policy holder wants to manage its policy holder insurees and their policy entitlement.
UC13 - Policy holder wants to manage its users.
UC14 - Policy holder wants to manage its contracts.
Not Functional
UC15 – Administrator wants to assign group insurance authorities (rights) to openimis role
UC16 – Manage the calculations
UC17 – add “nepal” calculations for policy value on income and contract rejection when important change are detected
Modules
The following module are part of the Formal Sector scheme management:
General topics (compitation accross modules)
Authorities
To manage the group insurance several authorities will be added, the existing authorities have a "*" :
PolicyHolder
C/R/U/D (4 authorities)
Portal R
PolicyHolderInsuree
C/R/U/D (4 authorities)
Approve (TBC)
Portal C/R/U/D (4 authorities)
PolicyHolderContract
C/R/U/D (4 authorities)
Submit
Approve/ask for change
Amend
Portal Submit
Portal Amend
PolicyHolderContractDetails
C/R/U/D (4 authorities)
Approve
Portal C/R/U/D (4 authorities)
PolicyHolderUser
C/R/U/D (4 authorities)
Portal C/R/U/D (4 authorities)
Payment
C*/R*/U*/D*(4 authorities)
Submit (TBC)
Validate
CreditNote
ContributionPlanBundle
C/R/U/D(4 authorities)
replace
Portal R
ContributionPlan
C/R/U/D(4 authorities)
repalce
Portal R
Profile
C/R/U/D(4 authorities)
Duplicate
Roles
To manage the group insurance several roles will be added, the existing roles have a "*" :
SchemeClerk( Clerck)
PolicyHolder*
C/R/U
PolicyHolderInsuree
C/R/U/D
Approve (TBC)
PolicyHolderUser
C/R/U/D
PolicyHolderContract
C/R/U
Submit
Approve
ContributionPlanBundle
R
ContributionPlan
R
PolicyHolderContributionPlan
R
SchemeAdmin*
PolicyHolder
C/R/U/D
PolicyHolderInsuree
C/R/U/D
Approve (TBC)
PolicyHolderUser
C/R/U/D
PolicyHolderContract
C/R/U/D
Submit
Approve
ContributionPlanBundle
C/R/U/D
replace
ContributionPlan
C/R/U/D
replace
PolicyHolderContributionPlan
C/R/U/D
PolicyHolderClerk
PolicyHolderInsuree
C/R/U
PolicyHolderContract
R/U
Submit
ContributionPlanBundle
R
ContributionPlan
R
payment
submits
accountant*
Payment
Validate
Database Versioning
The entities will have different versioning in place:
Entity related to a specific date (contract …) no versioning will be in place only logging/audition, the code or reference will be used to differentiate them on a business level.
Configuration item (Product, plans, bundle, calculation, policy holder, policyholders insuree): those could be replaced by another version at a given time therefore no CI could have the same code and overlapping validity dates; they will have
DateValidFrom (date)
DateValidTo (date)
isDeleted
Code (this stays the same across version)
Sub tables won't have any versioning because a new version of the parent table will create a new row in the sub tables.
Drop down list
The configuration of the the droip down list won’t be on the database but on the module configuration, in case a configuration is required across al module, the code will be updated to accept this configuration
Requirement Traceability Matrix
Scope | platform | # | sub | details | steps | SOP/MODULE | Requirement closing date | ETA |
general | any | UC1 |
| The Scheme Administrator wants to manage the policy holder insurees and their policy entitlement. (includes UC2 from the proposal) | SOP#001b | 30/10/20 | 28/02/21 | |
general | any | UC3 |
| The Scheme Administrator wants to manage the policy holder contract. | SOP#001a | 31/12/20 | 28/02/21 | |
general | any | UC4 |
| The Scheme Administrator wants to manage the policy holder contract payment. |
| 31/12/20 | 28/02/21 | |
general | any | UC5 |
| The Scheme Administrator wants policy holders insuree policies covered by a contract to auto activate based on policy holders contract payment. |
| 31/12/20 | 28/02/21 | |
general | any | UC7 |
| The Scheme Administrator wants to manage policy holders. |
| 30/10/20 | 31/12/20 | |
general | any | UC8 |
| The Scheme Administrator wants to add a Contribution plan (pricing rules linked to an insurance product). |
| 30/10/20 | 31/12/20 | |
general | any | UC9 |
| The Scheme Administrator wants to be able to configure the calculation parameters in the Contribution plan. |
| 30/10/20 | 31/12/20 | |
general | any | UC10 |
| The Scheme Administrator wants to add a Contribution Plan Bundle. |
| 30/10/20 | 31/12/20 | |
general | any | UC11 |
| The Scheme Administrator wants to enable some Contribution Plan Bundles per policy holder. |
| 30/10/20 | 31/12/20 | |
general | any | UC12 |
| The policy holder wants to manage its policy holder insurees and their policy entitlement. |
| 31/12/20 | 28/02/21 | |
general | any | UC13 |
| Policy holder wants to manage its users. |
| 31/01/21 | 28/02/21 | |
general | any | UC14 |
| Policy holder wants to manage its contracts. |
| 31/01/21 | 28/02/21 | |
general | any | UC15 |
| Administrator wants to assign group insurance authorities to openimis role |
| 31/12/20 | 28/02/21 | |
general | any | UC16 |
| Manage the calculations |
| 30/09/20 | 31/10/20 | |
calculation | backend | UC16 | 1 | add a new Calculation rule (needs to change the openimis.json). | calculation | 30/09/20 | 31/10/20 | |
calculation | webapp | UC16 | 2 | use the frontend contribution to select a calculation rule. | calculation | 30/09/20 | 31/10/20 | |
calculation | webapp | UC16 | 3 | use the fronend contribution to display the parameters required by multiple calculation for an object. | calculation | 30/09/20 | 31/10/20 | |
calculation | backend | UC16 | 4 | replace a calculation rule. | calculation | 30/09/20 | 31/10/20 | |
calculation | backend | UC16 | 5 | remove a calculation rule. | calculation | 30/09/20 | 31/10/20 | |
calculation | backend | UC17 | 1 | have a calculation rule to calculate the policy value based on policyholderInsuree income | calculation | 31/12/20 | 28/02/21 | |
calculation | backend | UC17 | 2 | have a calculation rule to set contract as to-be-reviewed when the expected value is 15% more or less than submitted | calculation | 31/12/20 | 28/02/21 | |
contribution plan bundles | webapp | UC10 | 1 | Search | contribution plan bundles List > use the search box > search, the default list will show only the active contribution plan bundle | contribution plan | 30/10/20 | 31/12/20 |
contribution plan bundles | webapp | UC10 | 2 | Add | contribution plan bundle List > 'add' contribution plan bundle > fill the details on the contribution plan bundle page > save | contribution plan | 30/10/20 | 31/12/20 |
contribution plan bundles | webapp | UC10 | 3 | Update | contribution plan bundles List > "Select" contribution plans bundles > update the details on the contribution plan bundle > save | contribution plan | 30/10/20 | 31/12/20 |
contribution plan bundles | webapp | 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) | contribution plan | 30/10/20 | 31/12/20 |
contribution plan bundles | webapp | 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 ) | contribution plan | 30/10/20 | 31/12/20 |
contribution plan bundles | backend | UC10 | 6 | Replacing / removing propagation to policyholder contribution plan bundle | contribution plan | 30/10/20 | 31/12/20 | |
contribution plan bundles | backend | UC10 | 7 | Replacing / removing propagation to policyholder insure contribution plan bundle | contribution plan | 30/10/20 | 31/12/20 | |
contribution plan | webapp | UC8 | 1 | Search | contribution plan List > use the search box > search, the default list will show only the active contribution plan | contribution plan | 30/10/20 | 31/12/20 |
contribution plan | webapp | UC8 | 2 | Add | contribution plan List > 'add' contribution plan > fill the details on the contribution plan page > save | contribution plan | 30/10/20 | 31/12/20 |
contribution plan | webapp | UC8 | 3 | Update | contribution plan List > "Select" contribution plan > update the details on the contribution plan > save | contribution plan | 30/10/20 | 31/12/20 |
contribution plan | webapp | 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) | contribution plan | 30/10/20 | 31/12/20 |
contribution plan | webapp | 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 ) | contribution plan | 30/10/20 | 31/12/20 |
contribution plan | backend | UC8 | 6 | Replacing / removing propagation to contribution plan bundle | contribution plan | 30/10/20 | 31/12/20 | |
Policy holder | webapp | UC7 | 1 | Search | PolicyHolder List > use the search box > search, the default list will show only the active policy holder | Policy holder | 30/09/20 | 31/10/20 |
Policy holder | webapp | UC7 | 2 | Add | PolicyHolder List > "add" PolicyHolder > fill the details on the Policy holder page > save | Policy holder | 30/09/20 | 31/10/20 |
Policy holder | webapp | UC7 | 3 | Update | PolicyHolder List > "Select" PolicyHolder > update the details on the Policy holder page > save | Policy holder | 30/09/20 | 31/10/20 |
Policy holder | webapp | UC7 | 4 | Delete | PolicyHolder List > "Select" PolicyHolder > Delete (this role should be only available to admin, others should only archive by setting the DateValidTo) | Policy holder | 30/09/20 | 31/10/20 |
Policy holder users | webapp | UC7 | 5 | search users | PolicyHolder List > "Select" PolicyHolder > UserList > > search, the default list will show only the active policy holder users | Policy holder | 30/09/20 | 31/10/20 |
Policy holder users | webapp | UC7 | 6 | add users | PolicyHolder List > "Select" PolicyHolder > UserList > add user | Policy holder | 30/09/20 | 31/10/20 |
Policy holder users | webapp | UC7 | 7 | update user | Select PolicyHolder > UserList > (Search user) >Select User > change details > Save | Policy holder | 30/09/20 | 31/10/20 |
Policy holder users | webapp | UC7 | 8 | Delete user | Select" PolicyHolder > UserList > (Search user) >Select User > change details > Delete | Policy holder | 30/09/20 | 31/10/20 |
Policy holder insuree | webapp | UC1 | 1 | Search | PolicyHolder List > "Select" PolicyHolder > Insuree tab > use the search box > search, the default list will show only the active policy holder insuree | Policy holder | 30/09/20 | 31/10/20 |
Policy holder insuree | webapp | UC1 | 2 | Add | PolicyHolder List > "Select" PolicyHolder > Insuree tab > 'add' insure > fill the details on the Policy holder insuree page > save | Policy holder | 30/09/20 | 31/10/20 |
Policy holder insuree | webapp | UC1 | 3 | Update (error) | PolicyHolder List > "Select" PolicyHolder > Insuree tab > update the details on the Policy holder page > save | Policy holder | 30/09/20 | 31/10/20 |
Policy holder insuree | webapp | UC1 | 4 | Replace | (new version) PolicyHolder List > "Select" PolicyHolder > Insuree tab > update the details on the Policy holder page > create new version à add ValidityTo | Policy holder | 30/09/20 | 31/10/20 |
Policy holder insuree | webapp | UC1 | 5 | Delete | PolicyHolder List > "Select" PolicyHolder > Insuree tab > "Select" an insuree> Delete (this role should be only available to admin, other should only archive by setting the DateValidTo) | Policy holder | 30/09/20 | 31/10/20 |
PolicyHolder contribution plan bundle | webapp | UC11 | 1 | Search | PolicyHolder List > "Select" PolicyHolder > contribution plan tab > use the search box > search, the default list will show only the active contribution plan | Policy holder | 30/09/20 | 31/10/20 |
PolicyHolder contribution plan bundle | webapp | UC11 | 2 | Add | PolicyHolder List > "Select" PolicyHolder > contribution plan tab > 'add' contribution plan bundles > fill the details on the Policy holder insuree page > save | Policy holder | 30/09/20 | 31/10/20 |
PolicyHolder contribution plan bundle | webapp | UC11 | 3 | Replace (new version) | Select PolicyHolder > contribution plan tab > "Select" a contribution plan bundles >> update the contribution plan > create a new version > add ValidityTo | Policy holder | 30/09/20 | 31/10/20 |
PolicyHolder contribution plan bundle | webapp | UC11 | 4 | Delete | PolicyHolder List > "Select" PolicyHolder > contribution plan tab > "Select" a contribution plan bundles > Delete | Policy holder | 30/09/20 | 31/10/20 |
PolicyHolder contribution plan bundle | backend | UC11 | 5 | Replacing / removing propagation to policyholder insure contribution plan bundle | Policy holder | 30/09/20 | 31/10/20 | |
Contract | webapp | UC3 | 1 | Add bulk "contract" | Policy holder List > select policyholder(s) > Contract list > generate bulk contract > enter the date on which the contract must be created if not already covered by previous contract. | Contract | 31/01/21 | 31/04/21 |
Contract | webapp | UC3 | 2 | Add "contract" | Policy holder List > Select a Policy Holder > Contract list> Generate contract > enter the date on which the contract must be created if not already covered by previous contract.> confirmation with the contract dates | Contract | 31/01/21 | 31/04/21 |
Contract | webapp | UC3 | 3 | Update contract details | Policy holder List > Select a Policy Holder > Contract list > Select contract > updates one/ several lines > save | Contract | 31/01/21 | 31/04/21 |
Contract | webapp | UC3 | 4 | Submit/sign "contract" | Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > Submit/sign contract | Contract | 31/01/21 | 31/04/21 |
Contract | webapp | UC3 | 5 | Review "Contract" | Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > contract Reviewed (only for submitted contract) | Contract | 31/01/21 | 31/04/21 |
Contract | webapp | UC3 | 6 | Ask updates "Contract" | Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > ask update (only for submitted contract) | Contract | 31/01/21 | 31/04/21 |
Contract | webapp | UC3 | 7 | Amend "contract" | Policy holder List > Select a Policy Holder > Contract list > Select contract >Generate Amendment > confirmation with Amendment number > add details (if it is about a new employee, they should be added before on the employee list) | Contract | 31/01/21 | 31/04/21 |
Contract | backend | UC3 | 8 | send payment notification by email | Contract | 31/01/21 | 31/04/21 | |
Contract | backend | UC3 | 9 | send update required (from ask update) notification by email | Contract | 31/01/21 | 31/04/21 | |
Payment | webapp | UC4 | 1 | Add payment | Policy holder List > Select a Policy Holder > contract list > create payment > enter value > save > confirmation giving the contract status | Contract | 31/01/21 | 31/04/21 |
Payment | webapp | UC4 | 2 | update payment | Policy holder List > Select a Policy Holder > payment list > Select payment > update value > save > confirmation giving the contract status | Contract | 31/01/21 | 31/04/21 |
Payment | webapp | UC4 | 3 | delete payment | Policy holder List > Select a Policy Holder > payment list > Select payment > delete payment > confirmation giving the contract status | Contract | 31/01/21 | 31/04/21 |
Payment | webapp | UC4 | 5 | add credit note from contract or amendment | Policy holder List > Select a Policy Holder > payment list > add credit note (negative payment) | Contract | 31/01/21 | 31/04/21 |
Payment | backend | UC4 | 6 | assign a credit note to contract | On contract approval, if there is a credit note not assigned to a contract, it will be assigned to the newly approved contract. | Contract | 31/01/21 | 31/04/21 |
Payment | backend | UC5 | 1 | When a full payment is received for a contract, the policy of the policyholder insuree part of the contact will be renewed if needed | Contract | 31/01/21 | 31/04/21 | |
Payment | backend | UC5 | 2 | When a full payment is received for a contract, the insureepolicy of the policyholder insuree part of the contact will be activated | Contract | 31/01/21 | 31/04/21 | |
Policy holder users | portal | UC13 | 6 | add users | UserList > add user | portal | 31/01/21 | 31/04/21 |
Policy holder users | portal | UC13 | 7 | update user | UserList > (Search user) >Select User > change details > Save | portal | 31/01/21 | 31/04/21 |
Policy holder users | portal | UC13 | 8 | block user | UserList > (Search user) >Select User > change details > Delete | portal | 31/01/21 | 31/04/21 |
Policy holder insuree | portal | UC12 | 1 | Search | My Insuree tab > use the search box > search, the default list will show only the active policy holder insuree | portal | 31/01/21 | 31/04/21 |
Policy holder insuree | portal | UC12 | 2 | Add | My Insuree tab > 'add' insure > fill the details on the Policy holder insuree page > save | portal | 31/01/21 | 31/04/21 |
Policy holder insuree | portal | UC12 | 3 | Update (error) | My Insuree tab > update the details on the Policy holder page > save | portal | 31/01/21 | 31/04/21 |
Policy holder insuree | portal | UC12 | 4 | Replace (new version) | My Insuree tab > update the details on the Policy holder page > create new version > add ValidityTo | portal | 31/01/21 | 31/04/21 |
Policy holder insuree | portal | UC12 | 5 | Delete | My insuree tab > "Select" an insuree> Delete (this role should be only available to admin, other should only archive by setting the DateValidTo) | portal | 31/01/21 | 31/04/21 |
Contract | portal | UC14 | 1 | search contract | My Contract list >fill search criteria > search | portal | 31/01/21 | 31/04/21 |
Contract | portal | UC14 | 2 | Update details | My Contract list > Select contract > update one/several line > save | portal | 31/01/21 | 31/04/21 |
Contract | portal | UC14 | 3 | Submit/sign "contract" | My Contract list > Select contract(s) > Submit/Sign contract | portal | 31/01/21 | 31/04/21 |
profile | webapp | UC13 | 1 | search profile | Profile list > enter search criteria > search | profile | 30/09/20 | 31/10/20 |
profile | webapp | UC13 | 2 | add profile | Profile list > add > select the authorities and define name > save | profile | 30/09/20 | 31/10/20 |
profile | webapp | UC13 | 3 | update profile | Profile list > Select Profile > update the authorities and name > save | profile | 30/09/20 | 31/10/20 |
profile | webapp | UC13 | 4 | replace profile | Profile list > Select Profile > update the authorities and name > replace > define replacement date | profile | 30/09/20 | 31/10/20 |