Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published

Service logic

  1. Save signed content to media storage

  2. Update device request status to entered-in-error (update also updated_at, updated_by)

  3. Get person's authentication_method according to logic:

    1. If authorize_with inform_with exists in device request and is not empty, check:

      1. Authentication method exists in person_authentication_methods table in MPI DB (with is_active=true), is active (ended_at > now() or null)

      2. Get value of THIRD_PERSON_CONFIDANT_PERSON_RELATIONSHIP_CHECK config parameter, if it is set to true - for authentication method with type = THIRD_PERSON check that person from value is an approved confidant for a person from device request – exists active and approved confidant person relationship between person from request and confidant_person_id from authentication method value (using following logic /wiki/spaces/CSI/pages/17667883028 with person_id = person from request and confidant_person_id = value from auth method - expected :ok, :approved response)

        1. in case any validation failed - do not send SMS to person

        2. else - get authentication_method from authorize_with inform_with

    2. If authorize_with inform_with does not exist in device request or is empty - get default authentication_method of person from MPI using logic https://e-health-ua.atlassian.net/wiki/spaces/CSI/pages/17613029453

  4. If authentication_method == OTP or THIRD_PERSON (with OTP),:

    1. Check if sms notifications are enabled:

      1. if device_request has a program specified

        1. check that the specified program has setting request_notification_disabled set in false or the setting is absent, else

      2. if device_request has no program specified

        1. check config parameter DEVICE_REQUESTS_SMS_ENABLED is set in true

  5. Generate text SMS with template MARK_IN_ERROR_DEVICE_REQUEST_SMS_TEMPLATE and send it

  6. Save internal information to corresponding DB

  7. Send StatusChangeEvent to the Event Manager