Мета
Ця WS призначена для відображення реєстрації користувача, яка використовується для створення особи та користувачів у системі.
Ключові положення
Програми повинні перенаправляти користувачів до цього методу, щоб виконати процес реєстрації пацієнтів і користувачів.
Після створення особи та її користувача в системі метод перенаправляється на сторінку «Прийняти скоупи», щоб отримати oAuth Code Grant (який пізніше обмінюється на Access Token).
Користувач побачить відтворену сторінку реєстрації, структура якої відрізняється списком запитаних скоупів і заходів безпеки, застосованих командою DevOps.
З міркувань безпеки встановіть X-Frame-Options:deny заголовок буде налаштовано на заборону відкриття цієї сторінки в iframe.
Специфікація
Вхідні параметри
Вхідні параметри | 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 | Токен довіреної особи |
Сервісна логіка
Відобразити сторінку реєстрації на основі вхідних параметрів і параметрів конфігурації:
перейдіть до сторінки «Схвалити відомості про особу».
Помилки бізнес-логіки
Помилки | Переклад |
---|---|
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 | Не коректний ідентифікатор особи що автенторизує дії |
Помилки схеми валідації
Відсутні потрібні властивості
Структура помилок
"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" } ] } ]
Переклад
Обовʼязковий атрибут "%{property}" відсутній
На вході | Переклад |
---|---|
$.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 | Згода з передачею даних в ЕСОЗ |
Кількість пунктів в переліку
Структура помилки
{ "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" } }
Переклад
На вході | Переклад |
---|---|
$.person.documents | Мінімум один документ особи що реєструється має бути вказаний |
$.person.addresses | Мінімум одна адреса має бути вказана |
$.person.phones | Мінімум один телефон має бути вказаний |
$.person.authentication_methods | Мінімум один метод автентифікації має бути вказаний |
$.person.confidant_person.documents_relationship | Мінімум один документ законного представника має бути вказаний |
$.person.emergency_contact.phones | Мінімум один телефон контактної особи для екстрених випадків має бути вказаний |