Purpose
This WS serves for receiving approval from person on action of merge with preperson.
Specification
Service logic
Only authenticated and authorized SPECIALIST or RECEPTIONIST employees can use this WS.
Usage of this WS allowed in EMERGENCY or OUTPATIENT legal entities.
Person should confirm merge with preperson by auth method chosen on create patient request or create declaration request processes.
The request can be approved only by employee who made the request.
Change status should be logged in the Event manager.
Authentication
Verify the validity of access token
Return 401 in case validation fails
Check user scopes in order to perform this action (scope = 'merge_request:write')
Return 403 in case invalid scope(s)
Validate schema
Validate request using schema (TBD)
Validate merge request
Validate merge request id exists in DB
In case of error - return 404
Check merge request status is NEW
In case of error - return 422 (Incorrect status to approve merge request)
Validate legal entity
Validate legal entity as on create merge request process.
Validate person
Validate person as on create merge request process.
Validate preperson
Validate preperson as on create merge request process, but w/o searching pending merge requests and episodes.
Validate employee
Validate employee as on reject merge request process
Determine authorization method
Get authorization_method from MPI.person_authentication_methods.
Next steps is similar to determine authorization method and check OTP/check Documents process on approve patient request.
Get preperson episodes
Get all the preperson episodes for the printout form.
Generate printout form
Invoke MAN to render print form.
Request mapping:
Parameter | Source |
---|---|
id | PREPERSON MERGE REQUEST |
2. Set il.merge_requests.printout_form
Update object in DB
il.merge_requests table
Parameter | Source | Description |
---|---|---|
status | Request: status | Status of the request, required. Set APPROVED |
data | Request: data | Request data to sign, required. Save master_person and merge_person blocks, except ids. |
printout_form | text | Generated printout form (PREPERSON MERGE REQUEST) |
updated_by | uuid | Extract user from token |
updated_at | timestamp | Get current date-time |