Required parameters are marked with "*"
Якщо інформації по відповідному параметру немає, потрібно зазначити: “API paragraph not found”.
Purpose*
Use this method to approve previously created Declaration Request.
Specification*
Link | |
Resource | /api/v3/declaration_requests/{id}/actions/approve |
Scope | declaration_request:approve |
Components | Необхідно зазначити перелік компонентів, які використовують цей метод, наприклад: ePrescription |
Using Dictionaries | Потрібно вказати словники, які використовує метод API |
Using Microservices | Вкажіть перелік мікросервісів, які використовує метод API. Наприклад: Auth, ABAC |
Protocol type | Вкажіть тип протоколу, який використовується запитом, наприклад: SOAP | REST | JSON |
Request type | PATCH |
Sync/Async | Метод є синхронним чи асинхронним? |
Logic*
In case if authentication_method is OTP, request example:
{ "verification_code": 3748 }
In case if authentication_method is OFFLINE or N/A, request body should be empty. Before approve patient's scanned documents should be uploaded to the (Signed URL's). All links are generated for one one-page document in jpeg format. Document should be no more than 10MB. If make declaration request via cabinet then nothing must be uploaded to URL. Clients can use signed URL's to directly access s3 storage and upload files via API.
Input parameters
Filter | Values | Type | Description | Example |
---|---|---|---|---|
id | String |
|
Request structure*
See on Apiary
{ "verification_code": 3748 }
Authorize*
Verify the validity of access token
Check user scopes declaration_request:write in order to perform this action
In case error - generate 401 response
Request to process the request using a token in the headers
Headers*
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
Validate request (JSON schema)*
Validate request using JSON schema
In case validation failed - generate 422 error
Validation data request*
Validate person verification status
validate patient's verification_status is not equal to NOT_VERIFIED.
in case of error return 409, "Patient is not verified"
Processing*
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_current is NULL - return Error
If authentication_method_current == OFFLINE - check uploaded document
If authentication_method_current = OTP - verify SMS code
Verify code
Invoke verification module to verify OTP
Check uploaded documents
Invoke Media Content Storage to check documents exist
Generate hash ‘seed’
Generate hash seed
- Hash of previous block in declarations chain or other random component that should be signed with declaration
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)
Generate printout form
Invoke MAN to render print form.
Request mapping:
Parameter | Source |
---|---|
id | DECLARATION REQUEST |
cURL example
Set IL.declaration_request.printout_content:
Response structure*
See on Apiary
Code 201
Code 422
Post-processing processes*
Що має відбутися в ЦБД після опрацювання та відправлення відповіді, тощо
HTTP status codes
HTTP status code | Message | What caused the error |
---|---|---|
201 |
|
|
422 |
Backward compatibility
Сумісність з попередніми версіями методу