Validate request
Validate request using JSON schema
In case validation failed - generate 422 error
JSON Schema
Authorize user
Verify the validity of access token
Check user scopes declaration_request:write in order to perform this action
In case error - generate 401 response
Get declaration request details
Get declaration request from IL_DB.declaration_request
Determine authorization method
Get authorization_method from IL_DB.declaration_request
SELECT IL_DB.declaration_request.authentication_method FROM IL_DB.declaration_request WHERE IL_DB.declaration_request.id = :id |
If authentication_method is NULL - return Error
If authentication_method == OFFLINE - check uploaded document
If authentication_method = OTP - verify SMS code, check uploaded documents for patient request form and add phone to db.verification.verified_phones
If authentication_method = CONFIDANT and confidant has auth.method = OTP - verify SMS code, check uploaded documents for patient request form and the document which confirms the guardianship.
If authentication_method = CONFIDANT and confidant has auth.method = OFFLINE - check uploaded documents for patient request form,a person's document, the confidant person's document and the document which confirms the guardianship.
Verify code
Invoke verification module to verify OTP
Check uploaded documents
Invoke Media Content Storage to check documents exist
Check doctor's limit
Get employee.id from declaration request, get party for employee_id
Find all employees in status= 'APPROVED' for the party. Find all specialities for those employees.
Set doctor's limit = min limit for employee's speciality.
Speciality limits are in ehealth.charts.il
Count declarations for $.employee.id, check if Counted declarations < doctor's limit
in case error return 422, "This doctor has X declarations and could not sign more"
Generate printout form
Invoke MAN to render print form.
Request mapping:
Parameter | Source |
---|---|
id | DECLARATION REQUEST |
cURL example
Set IL.declaration_request.printout_content:
Change patient request
Change entity status in IL_DB.declaration_request to APPROVED
Set updated_at - now() (Get current date-time)
Set updated_by - user_id (Extract user from token)