Concepts
Each PolicyHolder (employer) will be registered in openIMIS.
Each PolicyHolder will have access to some contribution plan attached to insurance product.
The PolicyHolder would have the possibility to add insurees with a contract period, default pricing parameters (e.g., income) and the contribution plan bundle to use.
The PolicyHolder will have user (Accountant, assistant … ) that will be able to connect on the policyholder portal
Business Processes
The process bellow will respect the location scope of the users, meaning that, to add a PolicyHolder for a region, the scheme clerk must have access to that very region.
The enrollment process that will be supported is defined by Nepal requirements. Although we try to make it broader, it might not support all the enrollment processes of all group insurances.
Use cases
PolicyHolder (employer)
The first step before enrolling insuree under a PolicyHolder, one needs to make sure that the PolicyHolder is defined in openIMIS. Read right is required to have access to the search/list screen. Managing PolicyHolders will be the role of the Clerk.
Web application
UC7-1: Search: PolicyHolder List > use the search box > search, the default list will show only the active PolicyHolders
UC7-2: Add: PolicyHolder List > "Add" PolicyHolder > fill the details on the PolicyHolder page > Save
UC7-3: Update: PolicyHolder List > "Select" PolicyHolder > update the details on the Policy holder page > Save
UC7-4: Delete: PolicyHolder List > "Select" PolicyHolder > Delete (this role should be only available to admin, others should only archive by setting the DateValidTo)
PolicyHolder User
Web application
UC7-5: Search users: PolicyHolder List > "Select" PolicyHolder > User List > search, the default list will show only the active PolicyHolder's users
UC7-6: Add users: PolicyHolder List > "Select" PolicyHolder > User List > add user > add details (validity dates) > Save
UC7-7: Update users: "Select" PolicyHolder > UserList > (Search user) >Select User > change details (validity dates) > Save
UC7-8: Delete user: "Select" PolicyHolder > UserList > (Search user) >Select User > change details > Delete
PolicyHolder insuree
Managing PolicyHolder's insurees will be possible from the PolicyHolder page. This should be possible for the PolicyHolderClerk and the Clerk roles.
Web application
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 (inactive policies will be hidden by default but it will be possible to show them in search results by means of a combination of the Show deleted and datevalid filter; the latter should be at Today per default)
UC1-2: Add: PolicyHolder List > "Select" PolicyHolder > Insuree tab > 'add' insure > fill the details on the PolicyHolder insuree page > save
UC1-3: Update (error): PolicyHolder List > "Select" PolicyHolder > Insuree tab > update the details on the PolicyHolder insuree page > save
UC1-4: Replace: (new version) PolicyHolder List > "Select" PolicyHolder > Insuree tab > click on the replace button > create new version popup > conf : This will set the ValiditTo of previous to ValidityFrom of the new
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)
PolicyHolder contribution plan bundle
Managing Policy holder contribution plan bundle, this should be possible for the SchemeClerk or SchemeAdmin.
Web application
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
UC11-2: Add: PolicyHolder List > "Select" PolicyHolder > contribution plan tab > 'add' contribution plan bundles > fill the details on the Policy holder insuree page > save
UC11-3: Replace (new version) > "Select" PolicyHolder > contribution plan tab > "Select" a contribution plan bundles > click on the replace button > create new version popup > conf : This will set the ValiditTo of previous to ValidityFrom of the new
UC11-4: Delete: PolicyHolder List > "Select" PolicyHolder > contribution plan tab > "Select" a contribution plan bundles > Delete
Backend
UC11-5: Replacing / removing propagation to PolicyHolder insuree contribution plan bundle
Details design
Backend module
Because openIMIS can already have an adapter to read the openIMIS roles and authority, no business function will be required outside the database updates and profile replacements.
Mutations
Mutation as part of the schema file:
Authorities
The following authorities will be added for group insurance management :
PolicyHolder
C/R/U/D (4 authorities)
PolicyHolderInsuree
C/R/U/D (4 authorities)
PolicyHolderUser
C/R/U/D (4 authorities)
Roles
The following roles need to be created or updated with the new authorities (new roles have * ):
SchemeClerk (Clerk)
PolicyHolder
C/R/U
PolicyHolderInsuree
C/R/U/D
Approve (TBC)
PolicyHolderUser
C/R/U/D
SchemeAdmin
PolicyHolder
C/R/U/D
PolicyHolderInsuree
C/R/U/D
Approve (TBC)
PolicyHolderContributionPlan
C/R/U/D
PolicyHolderUser
C/R/U/D
PolicyHolderClerk*
PolicyHolderInsuree
C/R/U
Models
mandatory fields have *
Technical fields have **
PolicyHolder (HistoryBusinessModel)
Code (varchar 32)*
TradeName (varchar 256)*
LocationsUUID (fk tblLocations)
Not limited to one level
Address (varchar/json 1024)
Phone (varchar 16)
Fax (varchar 16)
Email (varchar 256)
ContactName (varchar 1024/json)
LegalForm (configEnum:legalForm)
ActivityCode (configEnum:activity)
AccountancyAccount (varchar 64)
?bankAccount (varchar /json)
PaymentReference (varchar 128)
PolicyHolderInsuree (HistoryBusinessModel)
Version (integer - to be used for optimistic locking)
PolicyHolderUUID (fk policyHolder)*
InsureeUUID (fk Insuree)*
ContributionPlanBundleUUID (fk_contributionPlanBundle)
LastPolicyUUID (fk Policy)
PolicyHolderContributionPlanBundle (HistoryBusinessModel)
ContributionPlanBundleUUID (fk_contributionPlanBundle)*
PolicyHolderUUID (fk policyHolder)*
PolicyHolderUser (HistoryBusinessModel)
UserUUID (fk_user)*
PolicyHolderUUID (fk policyHolder)*
Services
CRUD services
replacePolicyHolderUser
replacePolicyHolderInsuree
replacePoicyHolderContributionPlanBundle
Frontend
The list of PolicyHolders should use the same layout as other existing list in openIMIS (claims, insuree ...).
Menu
Policyholder menu item should be located under the main menu "Insuree and policy".
PolicyHolder search page
PolicyHolder search criteria
Code (string)
Tradename (string)
Location (4 Select, one per level)
LegalForm (configEnum:legalForm ) (Select)
ActivityCode (configEnum:activity) (Select)
DateValidFrom (date) - Date picker
DateValidTo (date) - Date picker
The PolicyHolder result columns
Display name (Code - Tradename )
Location
LegalForm (configEnum:legalForm )
ActivityCode (configEnum:activity)
DateValidFrom (date)
DateValidTo (date)
Delete (Trash) and Edit (Pen) buttons at the end of the line (see Location module)
MaterialUI to add a policy holder.
Double click or click on Edit button to update a PolicyHolder.
Backend Configuration
configEnum:legalForm
Personal Company
Limited Risk company
Association
Governement
Union
configEnum:ActivityCode
Retail
Industry
Building
Sailing
Services
The PolicyHolder card
General Information
Once a PolicyHolder view/update page opens from the search list, the "General information" section or tab is displayed with those fields (editable for the one with enough rights):
Code (varchar) (Mandatory, not editable once created)
TradeName (varchar) (Mandatory)
LocationsUUID (fk tblLocations) (Mandatory)
Search for location with Level - Code - Name (all strings)
Address (varchar/json): multiline Box String OR (Address line 1, line2 , post code, city)
Phone (varchar): string + configurable Regex for validation/constraint
Fax (varchar): + configurable Regex for validation/constraint
Email (varchar): + std email field validation
ContactName (varchar/json)
LegalForm (configEnum:legalForm )
ActivityCode (configEnum:activity)
AccountancyAccount (varchar) + configurable Regex for validation/constraint
?bankAccount (json)
PaymentReference (varchar) + configurable Regex for validation/constraint
DateValidFrom (date) (Mandatory)
DateValidTo (date)
The material (Save) UI button will save the changes
PolicyHolder Users
This pages/section/tab will link interactive (openIMIS) user to PolicyHolder, in order to allow them to access the PolicyHolder’s data on the PolicyHolder portal (show only user with one of portal authorities - PolicyHolderClerk).
This page or section could be in different form:
a tab in the PolicyHolder page
a dedicated page, access from the PolicyHolder page via a link that prefills PolicyHolder search criteria
a new "menu" that have the name of the PolicyHolder
PolicyHolder Users search criteria
option to show deleted user
date on which the user should be active
user search (contribution_fe ?)
PolicyHolder Users result column
(User name / firstname / lastname) Contribution of fe user module, Dropdown for new and value (or readonly dropdown preselected) for existing
DateValidFrom (date) (input field)
DateValidTo (date) (input field)
Delete (will put it inactive, change the DateValidTo)
An empty line at the top of the list with the add button in place of delete, once filled, new empty line should be displayed.
The material (Save) UI button will save all the changes made on the list.
PolicyHolder Insurees
This pages/section will link the PolicyHolder and a given insuree, and will enable the addition of data on that relationship (contribution plan bundle and calculation rules parameters).
This page or section could be in different form:
a tab in the Policyholder card
a dedicated page, access from the PolicyHolder card via a link that prefill PolicyHolder search criteria
a new "menu" that have the name of the PolicyHolder
PolicyHolder insuree search criteria
option to show deleted user
insuree search (contribution_fe ?)
contribution plan bundle search (contribution_fe ?)
PolicyHolder insuree result column
(Insuree data) contribution_fe insure module, Dropdown for new and value for existing
(contribution plan bundle data) contribution_fe "contribution plan bundle" module, “Dropdown of PHCPB" for new, and “value” for existing
(calculation data) contribution_fe "calculation/rules" module, (inputs fields)
DateValidFrom (date) (input field)
DateValidTo (date) (input field)
replace and Delete button (will put it inactive, change the DateValidTo)
An empty line at the top of the list with the add button in place of delete, once filled, new empty line should be displayed.
The material (Save) UI button will save all the changes made on the list.
PolicyHolder Contribution plan bundle
This page/section will link the CPB to PolicyHolder, only CPB part of that list will selectable on the PHuser page/section
This page or section could be in different form:
a tab in the Policyholder card
a dedicated page, access from the PolicyHolder card via a link that prefill PolicyHolder search criteria
a new "menu" that have the name of the PolicyHolder
PolicyHolder Contribution plan bundle search criteria
option to show inactive PHCPB
contribution plan bundle search (contribution_fe ?)
PolicyHolder Contribution plan bundle result columns
(CPB data) contribution_fe CPB module, Dropdown for new and value for existing
(calculation data) contribution_fe "calculation/rules" module, (inputs fields, if any)
replace and Delete button (TBC)
An empty line at the top of the list with the add button in place of delete, once filled, new empty line should be displayed.
The material (Save) UI button will save all the changes made on the list.
Link to other entities
place holder for other tab / link to search pages → those should be added by contribution_fe
1 tab from the contract module
a simple pre-filtered for the contract search → select/double click will lead to contract pages (in the contract scope)
1 tab form the payment module (should have):
a simple pre-filtered for the payment search → select/double click will lead to contribution pages (made by Bluesquare) TBD
2 tab from the policy module (Nice to have):
a simple pre-filtered for the contribution search → select/double click will lead to contribution pages (made by Bluesquare) TBD
a simple pre-filtered for the policy search → select/double click will lead to contribution pages (made by Bluesquare) TBD
Frontend Configuration
Get Backend Configuration for the dropdown/enums or duplicate it
configurable Regex for validation/constraint for the phone and FAX (Nice to have)
plus message when the constraint is not respected (in different languages)
configurable Regex for validation/constraint for AccountancyAccount (Nice to have)
plus message when the constraint is not respected (in different languages)
configurable Regex for validation/constraint PaymentReference (Nice to have)
plus message when the constraint is not respected (in different languages)
When a tab is opened, only the id and the name of the PolicyHolder will be displayed in a top ribbon (as bread crumbs) or Prefilled search fields