Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinefalse
styledefault
typelist
printablefalse

...

  1. If person must be verified by DRACS birth acts registry by conditions from Step 1 - update person_verifications table in MPI db for person_id, set values:

    1. dracs_birth_verification_status = ‘IN_REVIEW’

    2. dracs_birth_verification_reason = ‘AUTO_ONLINE’

  2. If confidant person relationship must be verified by DRACS birth acts registry by conditions from Step 1 - ppdate confidant_person_relationships table in MPI db for person_id and relationship_id, set values:

    1. verification_status = ‘IN_REVIEW’

    2. verification_reason = ‘AUTO’

  3. Get persons birth acts - perform GetBirthArByChildNameAndBirthDate DRACS method with following request params:

    1. ChildName = persons.first_name

    2. ChildBirthDate = persons.birth_date

    3. ChildPatronymic = persons.second_name (skip if empty)

    4. ChildSurname = persons.last_name

  4. Get ResultData field from GetBirthArByChildNameAndBirthDate method response and decode it from base64 to get XML file of birth acts list.

    1. in case GetBirthArByChildNameAndBirthDate ResultCode <> 0 or connection error or timeout is occured - check that persons dracs_birth_verification_status = ‘IN_REVIEW’ or confidant person relationship verification status = ‘IN_REVIEW’

      1. if true - rollback it in person_verifications table in MPI db for person_id to previous state

      2. if false - skip this person, go to next person in list.

...

Save each birth act from formed list to dracs_birth_acts table in transaction according to fields matching:

...

  1. in case not found - insert new act record to dracs_birth_acts table, also add technical data:

    1. set id = autogenerate uuid

    2. set inserted_at = now()

    3. set updated_at = now()

  2. in case found - check that condition op_date = OP_DATE and ar_op_name = AR_OP_NAME is also met for found record:

    1. in case condition is met - full duplicate of birth acts already exists, update dracs_birth_acts tablefor found record:

      1. set updated_at = now()

    2. in case condition is not met - birth act was updated, check that fields of birth act from database (according to fields matching, but exclude technical fields ar_reg_date, ar_reg_number, op_date, ar_op_name) were updated in DRACS registry

      1. in case at least one field was updated

        1. save existing record to dracs_birth_acts_hstr table

          1. dracs_birth_act_id = id of current birth act from dracs_birth_acts table

          2. dracs_birth_act_data = full data of current birth act in jsonb format (without technical fields, use fields matching from table below)

          3. inserted_at = now()

        2. fully update existing birth act in dracs_birth_acts table with new values from DRACS registry

          1. set updated_at = now()

      2. in case none of the fields were updated - update dracs_birth_acts tablefor found birth act:

        1. op_date = OP_DATE from response

        2. ar_op_name = AR_OP_NAME from response

        3. updated_at = now()

...