Versions Compared

Key

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

Сторінка знаходиться в процесі розробки. Інформація на ній може бути застарілою.

Info

/wiki/spaces/EN/pages/17591304241 (remove the link block before publishing the document)

...

Page Properties
idpage_properties_method_REST API

Document type

Метод REST API

Document title

[Document status] REST API [Назва методу] [ID методуDRAFT] Recall Service request [API-007-010-001-0313]

Guideline ID

GUI-0011

Author

@

Document version

1

Document status

DRAFT

Date of creation

ХХ.ХХ.ХХХХ (дата фінальної версії документа – RC або PROD)

Date of update

ХХ.ХХ.ХХХХ (дата зміни версії)

Method API ID

API-007-010-001-0313

Microservices (namespace)

ME

Component

Service request

Component ID

COM-007-010

Link на API-специфікацію

https://ehealthmedicaleventsapimedicaleventsmisapi.docs.apiary.io/#reference/service-requests/manage-service-requests-in-patient-context/recall-service-request

Resource

{{host}}/api/patients/{{id}}/service_requests/{{id}}/actions/recall

Scope

service_request:recall

Protocol type

REST

Request type

PATCH

Sync/Async

Async

Public/Private

Public

...

  1. Save signed content to media storage

  2. Update service request status to Recalled (update also updated_at, updated_by)

  3. Write record to status history

  4. Send SMS to patient (if authentication_method_current == SMS, do NOT send sms in case performer is present in SR)

  5. Send SMS to patient (if authentication_method_current == SMS)

    1. Template - TBD

  6. Async! Revoke all approvals made by this service request

  7. if the service request is based on activity with quantity:

    1. Recalculate and set remaining_quantity for the activity as described at PreQualify Service Request | Validate service request

Configuration parameters

Description of the configuration parameters that are used when processing a request in the system

Dictionaries

Provides a list of links to dictionaries that are available in ConfluenceN/A

Dictionaries

N/A

Input parameters

Input parameter

Mandatory

Type

Description

Example

1

2

Request structure

See on ApiarySee on API-specification

Expand
titleExample
Code Block
languagejson
{
  "signed_data": "ew0KICAicGVyaW9kIjogew0KIC..."
}

Headers

...

Key

...

Value

...

Mandatory

...

Description

...

Example

...

Content-Type

...

application/json

...

M

...

Тип контенту

...

Content-Type:application/json

...

Authorization

...

Bearer: {{access_token}}

...

M

...

Перевірка користувача

...

Authorization:Bearer: {{access_token}}

...

api-key

...

{{secret}}

...

api-key: {{secret}}

Headers

Request data validation

Authorize

  • Verify the validity of access token

    • Return (401, 'unauthorized') in case of validation fails

  • Verify that token is not expired

    • in case of error - return (401, 'unauthorized')

  • Check user scopes in order to perform this action (scope = 'service_request:write')

    1. Return (403, 'invalid scopes') in case of invalid scope(s)

  • If BLOCK_UNVERIFIED_PARTY_USERS is true, then check party's data match following condition: verification_status != NOT_VERIFIED or (verification_status = NOT_VERIFIED and updated_at > current_date - UNVERIFIED_PARTY_PERIOD_DAYS_ALLOWED):

    • in case not match - return 403 ("Access denied. Party is not verified")

  • If BLOCK_DECEASED_PARTY_USERS is true, check that party is not deceased (party_verification record does not equal to: dracs_death_verification_status = VERIFIED and dracs_death_verification_reason = MANUAL_CONFIRMED):

    • in case of error - return 403 ("Access denied. Party is deceased")

...

  1. Render service request from DB

  2. Exclude $.status_reason and $.explanatory_letter from signed content

  3. Compare rendered service request and signed content

    1. In case both object doesn't match - return 422 ('Signed content doesn't match with previously created service request')

Processing

A list of processes related to receiving, changing or transmitting data according to the logic defined in the REST APIN/A

Response structure examples

...

See on API-specification

Expand
titleExample
Code Block
languagejson
{
  "data": {
    "status": "pending",
    "eta": "2018-08-02T10:45:16.000Z",
    "links": [
      {
        "entity": "job",
        "href": "/Jobs/NBXk9EyErUZv1RhXgyvgg"
      }
    ]
  },
  "meta": {
    "code": 202,
    "url": "http://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  }
}

...

Response code

HTTP Status code

Message

Internal name

Description

1

Базові

2

202401

Unauthorized

3

403

invalid Invalid scopes

4

403

Access denied. Party is not verified

5

403

Access denied. Party is deceased

6

409

Action is not allowed for the legal entity

7

409

Only an employee from legal entity where service request is created can recall service request

8

409

Service request in status %status% cannot be recalled

9

422

Signed content doesn't match with previously created service request

10

422

value Value is not allowed in enum

11

Специфічні

12

Post-processing processes

Description of actions performed on data after processingN/A

Technical modules where the method is used

List of pages describing technical modules where the method is used

Page Properties Report
headingsID ТМ, Статус
cqllabel = "tr-mis"

...