Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Concepts

Contract

This documents the contract that binds the policyHolder (e.g. employer) to pay the contributions and binds the insurance to provide coverage for the agreed benefit packages for the policyholder insuree.
Before every period, a Contract (list of contributions terms) will be generated based on the policy holder insuree information provided by the policy holder (default param, contract dates, CPB).
(Optional) Once generated the policy holder could update the contract (refresh list of employees and change insuree parameters).
Once submitted by the policy holder and approved by scheme admin the contributions part of the contract will be created and be eligible for payment, a trusted user could create directly an approved contract through the API.

Payment and policy update

Policy holder will make a single payment per contract (list of contributions of his insuree)
The payment will be linked to all the contributions which are related to the contract.
Depending on the configuration of openIMIS, the policy validity will be adapted based on the contribution plan and benefit plan rules (i.e., the insureepolicy will be created) based on the creation of the contribution or reception of the payment.

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.
First the contract will need to be created and approved the payment on a contract will update the status of the contract and the underlying policies
Use cases

Contract

(…) means actions for selected item in the list (cf HF claims)

Web application

  • (TBC, could work with scheduler)UC3-1: Add bulk "contract": Policy holder List > select policyholder(s) (or for all the PH part of the search result) > generate bulk contract (…) > enter the date on which the contract must be created if not already covered by previous contract.

  • UC3-10: add “Contract“: Contract search > “Add“ contract > fill the details on the contract page (draft) >save (mandatory fields required) > the insuree from the PH are imported with default calculation params

  • UC3-2: Add "contract" from PH: Policy holder List > Select a Policy Holder > Contract list> Generate contract (the insuree from the PH are imported with default calculation params) > fill the details on the contract page (draft)

  • UC3-11: Access to contract via contract search: Contract search > select contract

  • UC3-12: Access to a contract via PolicyHolder :Policy holder List > Select a Policy Holder > Contract list > Select contract

  • UC3-3: Update contract details: edit button on contract selected >update the details on the contract page (updatable fields will depend on the state) > save

  • UC3-4: Submit (“sign PH)) "contract": contract(s) selected >open contract > Submit/sign contract

  • (TBC)UC3-5: Approve (“sign Insurance“) "Contract" bulk: Select contract(s) > Approve contract (…)(only for submitted contract)

  • UC3-13: Approve (“sign Insurance“) "Contract": Select contract > open contract > contract Reviewed (only for submitted contract)

  • UC3-6: Counter "Contract": Select contract > open contract > ask update (only for submitted contract)

  • UC3-7: Amend "contract": Select contract > open 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)


Backend

  • UC3-8: send payment notification by email

  • UC3-9: send update required (from ask update) notification by email

  • UC3-14: (TBC replace UC3-1) create contract based on CPB periodicity / “renew-replace contract”

  • UC3-15: once approved:

    • Check if there is a valid policy for the insure covered by the contract (+ grace period), if not then it will create such policy with the normal duration and a status "contracted."

    • matching contribution need to be created linked to the policie(s)


Payment

The new policy state "contracted" indicate that the insuree policy doesn't have the same dates as the policy because it is renewable contract payment that defines the validity of the insureepolicy
on payment, a script will:

  1. retrieve the policies attached the “paid“ contribution (payment is for a contribution)

  2. check that total payment for each contribution match the contribution value

  3. Create or update the policyinsure up to the end of the grace period, two insurees policies could be created if two policies are required to cover the contract period.

Web application

  • UC4-1: add payment for several contract > contract(s) selected > create payment (…) > enter value > save > confirmation giving the contract status

  • UC4-7:add payment for a single contract selected > open contract page >create payment > enter value > save > confirmation giving the contract status

  • UC4-2: update payment: Policy holder List > Select a Policy Holder > payment list > Select payment > update value > save > confirmation giving the contract status

  • UC4-3: delete payment: Policy holder List > Select a Policy Holder > payment list > Select payment > delete payment > confirmation giving the contract status

  • UC4-5: add credit note from contract or amendment: Policy holder List > Select a Policy Holder > payment list > add credit note (negative payment)

Back end

  • 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 as a payment.

  • 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

  • UC5-2: When a full payment is received for a contract, the insureepolicy of the policyholder insuree part of the contact will be activated

Back end module Details design

Entities

Contract (Contribution Collection)(HistoryBusinessModel)

  • PolicyHolderUUID (fk policyHolder)

  • AmountNotified (float)

    • Upon Automatic creation

  • AmountRectified (float)

    • Manual update from the policy holder

  • AmountDue (float)

    • Value approved by the Scheme admins

  • DateApproved (date)

  • DatePaymentDue (date)

  • State (ConfigEnum:ContractState)

  • PayementReference(string)

  • Amendment ( int 0 for the contract)

Entity ContractDetails (input) - under Contract (HistoryModel)

  • ContractUUID (fk Contract)

  • PolicyHolderInsureeUUID (fk PolicyHolderInsuree)

  • ContributionPlanBundleUUID:Version(fk ContributionPlanBundle)

  • Json_param (json)

    • PolicyHolderInsuree parameters

  • Json_param_history (json)

Entity ContractContributionPlanDetails (output) - under ContractDetails (HistoryModel)

  • ContributionPlanUUID (fk_contributionPlan)

  • PolicyID (fk_policy)

  • ContractDetailsUUID 

ContributionPlan parameters will be stored in the json_ext part of the HistoryModel

Authorities

To manage the group insurance several authorities will be added, the existing authorities have a "*" :

  • PolicyHolderContract

    • C/R/U/D (4 authorities)

    • Submit

    • Approve/ask for change

    • Amend

  • PolicyHolderContractDetails

    • C/R/U/D (4 authorities)

    • Approve

  • Payment

    • C*/R*/U*/D*(4 authorities)

    • Submit (TBC)

    • Validate

    • CreditNote

Services

edit/update

delete

submit

approved

counter

renew

amend

createcontractContribution

updateFromPHInsuree

assignCreditNote

AddCreditNote

activateContractedPolicies (listen to payment signal)

Config

"ContractState":[
{
"value":"1",
"label":{
"fr":"Demande d'information",
"en":"Request for information"
}
}, {
"value":"2",
"label":{
"fr":"Brouillon",
"en":"Draft"
}
}, {
"value":"3",
"label":{
"fr":"Offre",
"en":"offer"
}
}, {
"value":"4",
"label":{
"fr":"En negociation",
"en":"Negociable"
}
},{
"value":"5",
"label":{
"fr":"Apprové",
"en":"executable"
}
},{
"value":"6",
"label":{
"fr":"addendum",
"en":"addendum"
}
},{
"value":"7",
"label":{
"fr":"En cours",
"en":"effective"
}
},{
"value":"8",
"label":{
"fr":"Appliqué",
"en":"executed"
}
},{
"value":"9",
"label":{
"fr":"Suspendu",
"en":"Disputed"
}
},{
"value":"10",
"label":{
"fr":"Terminé",
"en":"terminated"
}
},
]

Front end

search page

card

tab as a frontend contribution

  • No labels