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 |
token | M | String | Confidant patient’s token |
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: 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 | Не коректний ідентифікатор особи що автенторизує дії |
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.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 | Згода з передачею даних в ЕСОЗ |
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.confidant_person.documents_relationship | Мінімум один документ законного представника має бути вказаний |
$.person.emergency_contact.phones | Мінімум один телефон контактної особи для екстрених випадків має бути вказаний |