Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Мета

Ця WS призначена для відображення реєстрації користувача, яка використовується для створення особи та користувачів у системі.

Ключові положення

  1. Програми повинні перенаправляти користувачів до цього методу, щоб виконати процес реєстрації пацієнтів і користувачів.

  2. Після створення особи та її користувача в системі метод перенаправляється на сторінку «Прийняти скоупи», щоб отримати oAuth Code Grant (який пізніше обмінюється на Access Token).

  3. Користувач побачить відтворену сторінку реєстрації, структура якої відрізняється списком запитаних скоупів і заходів безпеки, застосованих командою DevOps.

  4. З міркувань безпеки встановіть X-Frame-Options:deny заголовок буде налаштовано на заборону відкриття цієї сторінки в iframe.

Специфікація

Apiary

Вхідні параметри

Вхідні параметри

M/O

Тип

Опис

client_id

M

String

Ідентифікатор клієнта видається після реєстрації юридичної особи або PIS. Використовується для визначення контексту MSP/Pharmacy/PIS

redirect_uri

M

String

URL-адреса, на яку буде перенаправлено користувача після реєстрації та аутентифікації. Ця URL-адреса отримає code і state параметри в рядку запиту

scope

M

String

Список областей, необхідних для бізнес-логіки програми, розділених пробілом. Різні форми входу будуть показані залежно від обсягів, які ви запитували

user_data

M

Base 64 String

Закодований підписаний вміст із реєстраційними даними особи

token

M

String

Токен довіреної особи

Сервісна логіка

  1. Відобразити сторінку реєстрації на основі вхідних параметрів і параметрів конфігурації:

    1. перейдіть до сторінки «Схвалити відомості про особу».

Помилки бізнес-логіки

Помилки

Переклад

message: user_data missing

Відсутні дані для реєстрації

message: Invalid signed content.

Підписаний контент некоректний або прострочений.

message: JWT is invalid.

Підписаний контент некоректний або прострочений.

message: Unable to authenticate signer

Не вдалося ідентифікувати підписанта

message: expected true but got false for attribute patient_signed

Користувач повинен погодитись з підписанням даних

message: expected true but got false for attribute process_disclosure_data_consent

Користувач повинен погодитись з передачею даних в ЄСОЗ

message: It is impossible to uniquely identify the person.

Не вдалося ідентифікувати персону. Зверніться до служби підтримки

message: Relationship not confirmed

Звʼязок між авторизованою особою і довіреною особою не підтверджено

message: Submitted document type is not allowed

Некоректний тип документу

message: User is blocked.

Користувача заблоковано

message: Person not found.

Не вдалося ідентифікувати персону. Зверніться до служби підтримки

message: Person who initiates registration of patient must be submitted as confidant person

Особа що створює запит на реєстрацію має бути вказана як законний представник

message: Person with cumulative verification status <verification_status> can not be submitted as confidant

Особа яка вказана як законний представник не верифікована

message: Confidant person must have active authentication method with type "OTP" where ended_at is equal to or greater than current date

Не коректний метод авторизації особи що вказана як законний представник

message: Only THIRD_PERSON authentication method can be created for person

Дозволена авторизація тільки через законного представника

message: Person who initiates registration of patient must be submitted as THIRD_PERSON

Не коректний ідентифікатор особи що автенторизує дії

Помилки схеми валідації

Відсутні потрібні властивості

Структура помилок

Code Block
"invalid": [
            {
                "entry": "$.person.birth_date",
                "entry_type": "json_data_property",
                "rules": [
                    {
                        "description": "required property birth_date was not present",
                        "params": {
                            "property": "birth_date"
                        },
                        "raw_description": "required property %{property} was not present",
                        "rule": "required"
                    }
                ]
            }
        ]

...

На вході

Переклад

$.person.first_name

Імʼя

$.person.last_name

Прізвище

$.person.second_name

По-батькові

$.person.birth_date

Дата народження

$.person.birth_country

Країна народження

$.person.birth_settlement

Місце народження

$.person.gender

Стать

$.person.email

Адреса електронної пошти

$.person.no_tax_id

Ознака відсутності ІПН

$.person.secret

Кодове слово

$.person.documents

Документи

$.person.documents.[0].type

Тип документу

$.person.documents.[0].number

Номер документу

$.person.documents.[0].issued_by

Місце видачі документу

$.person.documents.[0].issued_at

Дата видачі документу

$.person.documents.[0].expiration_date

Дата закінчення дії документу

$.person.addresses

Адреса

$.person.addresses.[0].type

Тип адреси

$.person.addresses.[0].country

Країна прописки (проживання)

$.person.addresses.[0].area

Область прописки (проживання)

$.person.addresses.[0].region

Район прописки (проживання)

$.person.addresses.[0].settlement

Населений пункт прописки (проживання)

$.person.addresses.[0].settlement_type

Тип населеного пункту прописки (проживання)

$.person.addresses.[0].settlement_id

Ідентифікатор населеного пункту прописки (проживання)

$.person.addresses.[0].street_type

Тип вулиці прописки (проживання)

$.person.addresses.[0].street

Вулиця прописки (проживання)

$.person.addresses.[0].building

Будинок прописки (проживання)

$.person.addresses.[0].apartment

Квартира прописки (проживання)

$.person.addresses.[0].zip

Поштовий індекс прописки (проживання)

$.person.phones

Телефони

$.person.phones.[0].type

Тип телефону

$.person.phones.[0].number

Номер телефону

$.person.authentication_methods

Методи автентифікації

$.person.authentication_methods.[0].type

Тип методу автентифікації

$.person.authentication_methods.[0].value

Значення методу автентифікації

$.person.authentication_methods.[0].alias

Найменування методу автентифікації

$.person.preferred_way_communication

Бажаний спосіб комунікації

$.person.confidant_person

Довірена особа

$.person.confidant_person.person_id

Ідентифікатор довіреної особи

$.person.confidant_person.documents_relationship

Документ що підтверджує звʼязок з довіреною особою

$.person.confidant_person.documents_relationship.[0].type

Тип документу довіреної особи

$.person.confidant_person.documents_relationship.[0].number

Номер документу довіреної особи

$.person.confidant_person.documents_relationship.[0].issued_by

Місце видачі документу довіреної особи

$.person.confidant_person.documents_relationship.[0].issued_at

Дата видачі документу довіреної особи

$.person.emergency_contact

Контактна особа для екстрених випадків

$.person.emergency_contact.first_name

Імʼя контактної особи для екстрених випадків

$.person.emergency_contact.last_name

Прізвище контактної особи для екстрених випадків

$.person.emergency_contact.second_name

По-батькові контактної особи для екстрених випадків

$.person.emergency_contact.phones

Телефони контактної особи для екстрених випадків

$.person.emergency_contact.phones.[0].type

Тип телефону контактної особи для екстрених випадків

$.person.emergency_contact.phones.[0].number

Номер телефону контактної особи для екстрених випадків

$.person.patient_signed

Ознака підпису запиту пацієнтом

$.person.process_disclosure_data_consent

Згода з передачею даних в ЕСОЗ

Кількість пунктів в переліку

Структура помилки

Code Block
{
    "error": {
        "invalid": [
            {
                "entry": "$.person.documents",
                "entry_type": "json_data_property",
                "rules": [
                    {
                        "description": "expected a minimum of 1 items but got 0",
                        "params": {
                            "actual": 0,
                            "min": 1
                        },
                        "raw_description": "expected a minimum of %{min} items but got %{actual}",
                        "rule": "length"
                    }
                ]
            }
        ],
        "message": "Validation failed. You can find validators description at our API Manifest: http://docs.apimanifest.apiary.io/#introduction/interacting-with-api/errors.",
        "type": "validation_failed"
    },
    "meta": {
        "code": 422,
        "request_id": "8d6c1272-40fd-47a4-b9d5-d74db649fbca#15905",
        "type": "object",
        "url": "http://api-svc.il/api/pis/confidant/sign-up_validation"
    }
}

...