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

[DRAFT] Terminate declarations via Cabinet [API-005-010-001-0190]

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

REST API method / Метод REST API (настанова) (remove the link block before publishing the document)

Properties of a REST API method document

Document type

Метод REST API

Document title

[DRAFT] Terminate declarations via Cabinet [API-005-010-001-0190]

Guideline ID

GUI-0011

Author

@Viacheslav Tybin (SoE eHealth)

Document version

1

Document status

DRAFT

Date of creation

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

Date of update

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

Method API ID

API-005-010-001-0190

Microservices (namespace)

IL

Component

Patient Cabinet

Component ID

COM-005-010

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

https://ehealthmisapi1.docs.apiary.io/#reference/public.-patient-cabinet/cabinet/terminate-declarations-via-cabinet

Resource

{{host}}/api/cabinet/declarations/{{id}}/actions/terminate

Scope

declaration:terminate

Protocol type

REST

Request type

PATCH

Sync/Async

Sync

Public/Private

Public

Purpose

A patient who was registered via cabinet needs to have the possibility to terminate his active declaration.

Logic

N/A

Configuration parameters

N/A

Dictionaries

  • PHONE_TYPE

  • CONFIDANT_PERSON_TYPE

  • GENDER

  • PREFERRED_WAY_COMMUNICATION

  • DOCUMENT_TYPE

  • DOCUMENT_RELATIONSHIP_TYPE

  • POSITION

  • EMPLOYEE_TYPE

  • EMPLOYEE_STATUS

  • COUNTRY

  • EDUCATION_DEGREE

  • QUALIFICATION_TYPE

  • SPECIALITY_TYPE

  • SPECIALITY_LEVEL

  • SPEC_QUALIFICATION_TYPE

  • SCIENCE_DEGREE

  • ADDRESS_TYPE

  • SETTLEMENT_TYPE

  • STREET_TYPE

  • LEGAL_FORM

  • SPECIALITY_TYPE

Input parameters

Input parameter

Mandatory

Type

Description

Example

Input parameter

Mandatory

Type

Description

Example

1

id

 

String

Required

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

2

 

 

 

 

 

Request structure

See on API-specification

{ "reason_description": "Неякісне обслуговування" }

Headers

Headers

Request data validation

Authorize

  1. Verify the validity of access token

  2. Check user scopes declaration:terminate in order to perform this action

    1. In case error - generate 401 response

  3. Extract user_id from token

  4. Find users.person_id where user_id=$user_id

Authorize

  1. Verify the validity of access token

  2. Check user scopes declaration:terminate in order to perform this action

    1. In case error - generate 401 response

  3. Extract user_id from token

  4. Find users.person_id where user_id=$user_id

Validate request

input parameters:

  • reason_description.

Patient via cabinet can terminate only his own active declaration.

  1. Search declaration by $.declaration_id

    1. in case of error return 404

  2. Check declaration status = active

    1. in case of error return 409. Message: "Declaration is not active"

  3. Validate declarations.person_id=users.person_id

    1. in case of error return 403. Message: "Invalid declaration ID"

Processing

Terminate declaration

  1. Change declaration status to `terminated`

  2. Set then change declarations.reason to `manual_person`

  3. Save "reason_description" to declarations.reason_description

Response structure examples

See on API-specification

{ "meta": { "code": 200, "url": "https://example.com/resource", "type": "object", "request_id": "6617aeec-15e2-4d6f-b9bd-53559c358f97#17810" }, "data": { "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b", "declaration_number": "0000-12H4-245D", "start_date": "2017-03-02", "end_date": "2017-03-02", "person": { "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b", "first_name": "Петро", "last_name": "Іванов", "second_name": "Миколайович", "birth_date": "1991-08-19", "gender": "FEMALE", "tax_id": "3126509816", "phones": [ { "type": "MOBILE", "number": "+380503410870" } ], "birth_settlement": "Вінниця", "birth_country": "Україна", "unzr": "19910819-00011", "emergency_contact": { "first_name": "Петро", "last_name": "Іванов", "second_name": "Миколайович", "phones": [ { "type": "MOBILE", "number": "+380503410870" } ] }, "confidant_person": [ { "relation_type": "PRIMARY", "first_name": "Петро", "last_name": "Іванов", "second_name": "Миколайович", "birth_date": "1991-08-19", "birth_country": "Україна", "birth_settlement": "Вінниця", "gender": "MALE", "email": "confidant_person@example.com", "tax_id": "3126509816", "secret": "secret", "unzr": "19900101-00099", "preferred_way_communication": "email", "documents_person": [ { "type": "PASSPORT", "number": "АА120518", "expiration_date": "2021-02-28", "issued_by": "Рокитнянським РВ ГУ МВС Київської області", "issued_at": "2017-02-28" } ], "documents_relationship": [ { "type": "BIRTH_CERTIFICATE", "number": "АА120518", "issued_by": "Рокитнянським РВ ГУ МВС Київської області", "issued_at": "2017-02-28" } ], "phones": [ { "type": "MOBILE", "number": "+380503410870" } ] } ] }, "employee": { "id": "d290f1ee-6c54-4b01-90e6-d701748f0851", "position": "P1", "employee_type": "DOCTOR", "status": "APPROVED", "start_date": "2017-03-02T10:45:16.000Z", "end_date": "2018-03-02T10:45:16.000Z", "party": { "id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b", "first_name": "Петро", "last_name": "Іванов", "second_name": "Миколайович" }, "division_id": "4cffa825-8b5b-4cba-9a38-fb57733e14b2", "legal_entity_id": "be3a154c-3e07-496d-9680-f22c443f5d0c", "doctor": { "educations": [ { "country": "UA", "city": "Київ", "institution_name": "Академія Богомольця", "issued_date": "2017-02-28", "diploma_number": "DD123543", "degree": "MASTER", "speciality": "Педіатр" } ], "qualifications": [ { "type": "SPECIALIZATION", "institution_name": "Академія Богомольця", "speciality": "Педіатр", "issued_date": "2017", "certificate_number": "2017", "valid_to": "2017", "additional_info": "додаткова інофрмація" } ], "specialities": [ { "speciality": "THERAPIST", "speciality_officio": true, "level": "FIRST", "qualification_type": "AWARDING", "attestation_name": "Академія Богомольця", "attestation_date": "2017-02-28", "valid_to_date": "2020-02-28", "certificate_number": "AB/21331" } ], "science_degree": { "country": "UA", "city": "Київ", "degree": "", "institution_name": "Академія Богомольця", "diploma_number": "DD123543", "speciality": "Педіатр", "issued_date": "2017" } } }, "division": { "id": "d290f1ee-6c54-4b01-90e6-d701748f0851", "name": "Бориспільське відділення Клініки Ноунейм", "addresses": [ { "type": "RESIDENCE", "country": "UA", "area": "Житомирська", "region": "Бердичівський", "settlement": "Київ", "settlement_type": "CITY", "settlement_id": "b075f148", "street_type": "STREET", "street": "вул. Ніжинська", "building": "15", "apartment": "23", "zip": "02090" } ], "phones": [ { "type": "MOBILE", "number": "+380503410870" } ], "email": "email@example.com", "location": { "latitude": 30.1233, "longitude": 50.32423 } }, "legal_entity": { "id": "d290f1ee", "name": "Клініка ЦПМСД №1", "short_name": "ЦПМСД №1", "legal_form": "140", "public_name": "ЦПМСД №1", "edrpou": "5432345432", "status": "ACTIVE", "email": "email@example.com", "phones": [ { "type": "MOBILE", "number": "+380503410870" } ], "addresses": [ { "type": "RESIDENCE", "country": "UA", "area": "Житомирська", "region": "Бердичівський", "settlement": "Київ", "settlement_type": "CITY", "settlement_id": "b075f148", "street_type": "STREET", "street": "вул. Ніжинська", "building": "15", "apartment": "23", "zip": "02090" } ] }, "status": "active", "scope": "family_doctor", "declaration_request_id": "74a6fae6-4207-4e03-a136-f2e70c6b0c02", "content": "Declaration content", "inserted_at": "2017-03-02T10:45:16.000Z", "updated_at": "2017-03-02T10:45:16.000Z" }, "paging": { "page_number": 2, "page_size": 50, "total_entries": 1000, "total_pages": 23 } }

HTTP status codes

Response code

HTTP Status code

Message

Internal name

Description

Response code

HTTP Status code

Message

Internal name

Description

1

Базові

2

 

200

 Response

 

 

3

 

401

 

User scope check failed

 

4

 

403

Invalid declaration ID

Validation failed

 

5

 

404

 

Declaration search by $.declaration_id failed

 

6

 

409

Declaration is not active

Validation failed

 

7

Специфічні

8

 

 

 

 

 

Post-processing processes

N/A

Technical modules where the method is used

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