ЕСОЗ - публічна документація
RCC_CSI-3205_Block Medication request
Service logic
Update Medication request in OPS DB:
set is_blocked = true
set block_reason_system = $.block_reason_system
set block_reason_code = $.block_reason_code
set block_reason = $.block_reason
set updated_by = user_id
set updated_at = now()
set block_legal_entity_id = legal entity id out of token
Send SMS for person
If Medication request has program with medical program setting request_notification_disabled = true, then don't send SMS.
Else:
If authorize_with inform_with exists in medication request and is not empty, check:
Authentication method exists in person_authentication_methods table in MPI DB (with is_active=true), is active (ended_at > now() or null)
Get value of
THIRD_PERSON_CONFIDANT_PERSON_RELATIONSHIP_CHECK
config parameter, if it is set totrue
- for authentication method with type = THIRD_PERSON check that person from value is an approved confidant for a person from medication request – exists active and approved confidant person relationship between person from request and confidant_person_id from authentication method value (using following logic: https://e-health-ua.atlassian.net/wiki/spaces/CSI/pages/17667883028 withperson_id
= person from request andconfidant_person_id
= value from auth method) - expected:ok, :approved
response)in case any validation failed - do not send SMS to person
else - get authentication_method from authorize_with inform_with
If authorize_with inform_with does not exist in medication request or is empty - get authentication_method of person from MPI
If authentication_method == OTP, then send SMS to a person from Medication request:
Generate SMS text
get template from block_template_sms parameter
enrich template with data from Medication request
Send SMS to a person
Add new record in Event manager:
ЕСОЗ - публічна документація