Purpose
This WS is designed to show user login sign-up that is used to create person and persons user in the system.
Key points
Applications must redirect users to this endpoint to perform patient and user registration process.
After person and its user is created in the system, method reditects to ‘Accept scopes’ page to obtain oAuth Code Grant (which is later exchanged to Access Token).
User will see rendered registration page, which structure differ by a list of requested scopes and security measures applied by DevOps team.
For security purposes, set
X-Frame-Options: deny
header will be set to disallow opening this page in an iframe.
Specification
Input parameters
Input parameter | M/O | Type | Description |
---|---|---|---|
client_id | M | String | Client id issued after legal entity or PIS registration. Used to identify the context of the MSP/Pharmacy/PIS |
redirect_uri | M | String | URL where user will be redirected after registration and authentification. This url will receive |
scope | M | String | List of scopes that is required in application business logic, separated by space. Different login forms will be shown based on scopes that you requested |
user_data | M | Base 64 String | Encoded signed content with person registration data |
Service logic
Render sign-up page based on input parameters and configuration parameters:
proceed to ‘Approve person details’ page.
Errors
Business logic errors
Error | Translation |
---|---|
message: user_data missing | Відсутні дані для реєстрації |
message: Invalid signed content. | Підписаний контент некоректний або прострочений. |
message: JWT is invalid. | Підписаний контент некоректний або прострочений. |
message: Registration person and person that sign should be the same | Дані з підпису не співпадають з даними для реєстрації |
message: Input name doesn't match name from digital signature | Дані з підпису не співпадають з даними для реєстрації |
message: expected true but got false for attribute patient_signed | Користувач повинен погодитись з підписанням даних |
message: expected true but got false for attribute process_disclosure_data_consent | Користувач повинен погодитись з передачею даних в ЄСОЗ |
message: Incorrect person age for such an action. | Для вказаного віку персони авторизація в системі не дозволена |
message: Submitted document type is not allowed | Некоректний тип документу |
message: Document that proves person`s legal capacity must be submitted | Для вказаного віку персони необхідно вказати документи підтверджуючі дієздатність особи |
message: Only OTP authentication method can be created for person | Некоректно вказаний метод автентифікації |
message: Invalid verification code | Некоректний код підтвердження |
message: User is blocked. | Користувача заблоковано |
message: Person not found. | Не вдалося ідентифікувати персону. Зверніться до служби підтримки |
message: Incorrect person age for such an action. | Для вказаного віку персони самореєстрація в системі не дозволена |
Schema validation errors
Required property missing
Error structure
"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" } ] } ]
Translation
Обовʼязковий атрибут "%{property}" відсутній
Entry | Translation |
---|---|
$.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.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 | Згода з передачею даних в ЕСОЗ |
Number of items in list
Error structure
{ "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" } }
Translation
Entry | Translation |
---|---|
$.person.documents | Мінімум один документ особи що реєструється має бути вказаний |
$.person.addresses | Мінімум одна адреса має бути вказана |
$.person.phones | Мінімум один телефон має бути вказаний |
$.person.authentication_methods | Мінімум один метод автентифікації має бути вказаний |
$.person.emergency_contact.phones | Мінімум один телефон контактної особи для екстрених випадків має бути вказаний |