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

RC_warranty_Complete Person documents upload

Purpose

This WS is designed to complete person documents uploading process through person information system (PIS).

Key points

  1. This method is used only by PIS.

  2. This method checks list of documents that needs to be uploaded for person and urls. In case all person documents were be uploaded - persons nhs verification status is updated.

  3. Person is obtained from user that performs method.

Specification

Apiary

Validations

Authorization

  • Verify the validity of the access token

    • in case of error - return 401 (“Invalid access token”)

  • Verify that token is not expired

    • in case of error - return 401 (“Invalid access token”)

  • Check user scopes in order to perform this action (scope = 'person_documents:write_pis')

    • in case of invalid scope(s) - return 403 (“Your scope does not allow to access this resource. Missing allowances: person_documents:write_pis”)

Validate person

  • Get person_id from user

  • Check person exists in mpi database and is active (status = ‘active’ and is_active=true)

    • in case of error - return 404 ('Person does not exist or is not active')

Service logic

  1. Get list of person documents that must be uploaded to media content storage (for each type of documents, if couple of rules worked - only one file is expected):

    1. Call https://e-health-ua.atlassian.net/wiki/spaces/PCAB/pages/17599399440, send person_id = person.id and confidant_person_id = applicant_person_id (from token)

      1. in case if method returns :ok, :approved (relationship exists and is approved):

        1. Check for documents with name confidant_person.{confidant_person_id}.documents_relationship.[:].{type}, where type = type of documents stored in https://e-health-ua.atlassian.net/wiki/spaces/PCAB/pages/17599401195/warranty+MPI#confidant_person_relationship_documents with confidant_person_relationship_id = id of found relationship and proceed to next steps (check and generate links for person documents if needed)

      2. in case if method returns :ok, :not_approved (relationship exists but isn’t approved):

        1. Check for documents with name confidant_person.{confidant_person_id}.documents_relationship.[:].{type}, where type = type of documents stored in https://e-health-ua.atlassian.net/wiki/spaces/PCAB/pages/17599401195/warranty+MPI#confidant_person_relationship_documents with confidant_person_relationship_id = id of found relationship and skip next steps (do not check and generate links for person documents)

    2. If one of persons document has type = ‘BIRTH_CERTIFICATE_FOREIGN’ and there is no same document in {person.confidant_person.[:].documents_relationship.[:]} and persons age < no_self_auth_age global parameter value then

      1. Check for document with name person.BIRTH_CERTIFICATE_FOREIGN

    3. If one of persons document has type = ‘PERMANENT_RESIDENCE_PERMIT’ and persons age >= no_self_auth_age global parameter value then

      1. Check for document with name person.PERMANENT_RESIDENCE_PERMIT

    4. If persons authentication method = ‘OFFLINE’ or ‘THIRD_PERSON’ authentication method = ‘OFFLINE’

      1. Check for documents with name person.{documents.[:].type} or third_person.{third_person.documents.[:].type}

    5. If person.unzr field is not empty and first 8 digits of unzr != persons birth_date

      1. Check for document with name person.unzr

    6. If persons age is greater then no_self_registration_age global parameter, but less then person_full_legal_capacity_age global parameter
      and one of persons documents has type from PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES config parameter then

      1. Get type of document that has been found
        AND check for documents with name person.{type}

  2. Check existence of each document in existing media content storages for person:

    1. persons

    2. person_requests

    3. authentication_method_requests

  3. Generate signed urls for each document that must be uploaded but does not exist in persons media content storage.

  4. If all expected person documents exist in persons media content storage and persons nhs_verification_status = ‘NOT_VERIFIED’ and nhs_verification_reason = ‘DOCUMENTS_TRIGGERED’, update persons nhs verification status according to logic described https://e-health-ua.atlassian.net/wiki/spaces/DRACS/pages/17249206422/IL.Sign+person+request+modified+EN#Manual-NHS-verification

  5. Render a response according to specification.

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