ЕСОЗ - публічна документація

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 5 Next »

Overall process

Capitation report starts periodically based on the value of configuration parameter CAPITATION_REPORT_SCHEDULE

Configuration

ParameterDescriptionValue
CAPITATION_REPORT_SCHEDULE(Cron Format) How often to run capitation report`* 1 * * *`
CAPITATION_REPORT_VALIDATE_SIGNATURE
true

Specification

Prepare dataset

  1. Determine billing_date

Billing_date - first calendar day of month. Month is equal to the month of report execution date

Example

Report execution date is June 5, 2018

So the billing date should be June 1, 2018

2. Find active contracts

Active contract - contract that meets the following conditions:

AttributeCondition
contract.start_date< billing_date
contract.end_date>= billing_date
contract.statusin (ACTIVE)

3. Find active employees declared in Active contract's

Active employee - employee that meets the following conditions:

AttributeCondition
contract_employees.start_date< billing_date
contract_employees.end_date>= billing_date

4. Find active declarations signed with Active employee

Active Declarations - declaration that meets the following conditions and is signed with active employee

AttributeCondition
declarations.employee_id= contract_employees.employee_id
declarations.division_id= contract_employees.division_id

declaration_status_hstr.status = active

declaration_status_hstr.inserted_at

Declaration was active on billing_date

5. Determine age_group for each declaration

There are following age groups right now:

GroupCondition
0 - 5
EXTRACT(YEAR FROM AGE(now(), persons.birth_date)) between 0 and 6
where persons.id = declarations.person_id
6 - 17EXTRACT(YEAR FROM AGE(now(), persons.birth_date)) between 6 and 17
where persons.id = declarations.person_id
18 - 39EXTRACT(YEAR FROM AGE(now(), persons.birth_date)) between 18 and 39
where persons.id = declarations.person_id
40 - 65EXTRACT(YEAR FROM AGE(now(), persons.birth_date)) between 40 and 65
where persons.id = declarations.person_id
65 +EXTRACT(YEAR FROM AGE(now(), persons.birth_date)) >
where persons.id = declarations.person_id

6. (Optional) Validate signed content

7. Aggregate and save data to DB

Save data to DB

  • No labels