Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
minLevel1
maxLevel3

Purpose

Use this method to approve previously created Declaration Request.

Specification

...

Link

...

https://ehealthmisapi1.docs.apiary.io/#reference/public.-medical-service-provider-integration-layer/declaration-requests/approve-declaration-request-v3

...

Resource

...

Table of Contents
minLevel1
maxLevel3

Purpose

Use this method to approve previously created Declaration Request.

Specification

Link

https://ehealthmisapi1.docs.apiary.io/#reference/public.-medical-service-provider-integration-layer/declaration-requests/approve-declaration-request-v3

Resource

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

Scope

declaration_request:approve

Components

Declarations

Using Dictionaries

API paragraph not found

Using Microservices

API paragraph not found

Protocol type

REST

Request type

PATCH

Sync/Async

Sync

Public/Private/Internal

Public

...

Request to process the request using a token in the headers

Headers

  • Content-Type:application/json

  • Authorization:Bearer c2778f3064753ea70de870a53795f5c9

Validate request

  1. Validate request using JSON schema

    1. In case validation failed - generate 422 error

...

  • Content-Type:application/json

  • Authorization:Bearer c2778f3064753ea70de870a53795f5c9

Validate request

  1. Validate request using JSON schema

    1. In case validation failed - generate 422 error

Expand
Code Block
{
  "meta": {
    "code": "422",
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "6617aeec-15e2-4d6f-b9bd-53559c358f97#17810"
  },
  "error": {
    "codetype": "422request_malformed",
    "urlmessage": "https://example.com/resource",
    "type": "object",
    "request_id": "6617aeec-15e2-4d6f-b9bd-53559c358f97#17810"
  },
  "error": {
    "type": "request_malformed",
    "message": "This doctor has X declarations and could not sign more"
  }
}

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

...

Code Block
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

OTP Verification

Check uploaded documents

Invoke Media Content Storage to check documents exist

...

This doctor has X declarations and could not sign more"
  }
}

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

Code Block
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’)

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

...