ЕСОЗ - публічна документація

RC_Approve declaration request v3 (modified - EN)

 

Purpose

Use this method to approve previously created Declaration Request.

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.

 

Specification

Link

GENERAL MIS API · Apiary

Resource

/api/v3/declaration_requests/{{id}}/actions/approve

Scope

declaration_request:write

Components

Declarations

Microservices

API paragraph not found

Protocol type

REST

Request type

PATCH

Sync/Async

Sync

Public/Private/Internal

Public

 

Logic

API paragraph not found

 

Input parameters

Input parameter

Values

Type

Description

Example

Input parameter

Values

Type

Description

Example

id

 

string

 

b075f148-7f93-4fc2-b2ec-2d81b19a9b7b

 

Request structure

See on Apiary

{ "verification_code": 2836 }

 

Authorize user

  1. Verify the validity of access token

  2. Check user scopes declaration_request:write in order to perform this action

    1. In case error - generate 401 response

 

Headers

Content-Type:application/json

 

Validate request

  1. Validate request using JSON schema

    1. In case validation failed - generate 422 error

JSON Schema 

{   "$schema": "http://json-schema.org/draft-04/schema#",   "type": "object",   "properties": {     "verification_code": {       "type": "string"     }   },   "required": [     "verification_code"   ],   "additionalProperties": false }

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"

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

If authentication_method_current = NA - verify Parent declaration

Verify code

Invoke verification module to verify OTP

OTP Verification

Check uploaded documents

Invoke Media Content Storage to check documents exist

Media Content Storage

Verify Parent declaration

Get parent_declaration_id from IL_DB.declaration_requests.parent_declaration_id:

  • If parent_declaration_id is null, validate declaration request with current authentication_method_current = NA logic

  • If parent_declaration_id is not null, check that parent declaration exists and in status 'active'

    • In case of error - return 404 (‘Active parent declaration was not found’)

 

Processing

Generate printout form

Invoke MAN to render print form.

Request mapping:

Parameter

Source

Parameter

Source

id

DECLARATION REQUEST

cURL example

 

Set IL.declaration_request.printout_content:

 

Change patient_signed and process_disclosure_data_consent values

If parent_declaration_id is not null and authentication_method_current = NA, update following fields values at data_to_be_signed field:

  • patient_signed = null

  • process_disclosure_data_consent = null

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

  1. Change entity status in IL_DB.declaration_request to APPROVED

  2. Set updated_at - now() (Get current date-time)

  3. Set updated_by - user_id (Extract user from token)

 

Response structure

See on Apiary

Example:

 

 

Post-processing processes

API paragraph not found

 

HTTP status codes

HTTP status code

Message

What caused the error

HTTP status code

Message

What caused the error

 201

 

 

 422

 

 

 

 

ЕСОЗ - публічна документація