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

[DRAFT] BP-ESOZ-009-0005 [APIS] Реєстрація користувача через АПІС

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

Властивості документа

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

Бізнес-процес

Назва документа

BP-ESOZ-009-0005 [PIS] Створення користувача типу Patient

ID настанови

GUI-004

Автор

@Liudmyla Dobrovolska (SoE eHealth)

Версія документа

v010

Статус документа

DRAFT

Дата створення

01.11.2024

Дата оновлення

 

ID групи

BPG-ESOZ-009

ID бізнес-процесу

BP-ESOZ-009-0005

Назва бізнес-процесу

[APIS] Реєстрація користувача через АПІС

Посилання на схеми

[APIS] Реєстрація користувача через АПІС

Загальні відомості

Процес реєстрації користувача спрямований на надання можливості створення облікового запису для доступу до системи та прийняття умов використання сервісу. Це передбачає заповнення реєстраційної форми відповідно до специфікацій системи та підтвердження введеної інформації

Передумови

АПІС має надати Користувачу можливість ознайомитися з політикою конфіденційності АПІС:

  • посилання на політику конфіденційності АПІС повинно дозволяти користувачу ознайомитися з нею. АПІС має дозволяти Користувачу зберегти текст політики як файл або надіслати його на електронну пошту обрану користувачем

  • Користувач може продовжити роботу з Системою лише після явної згоди з положеннями політики конфіденційності АПІС

Схема бізнес-процесу

Зображення схеми

 

 

Посилання на схему

На перегляд: https://modeler.camunda.io/share/e8fa4eae-f1a9-47ae-a85d-3ee57620d0a8

На редагування: https://modeler.camunda.io/diagrams/c5c565c1-d4f6-4abf-8bcf-4478b82fbc37--bp-esoz-009-0005-apis-реєстрація-користувача-через-апіс?v=729,279,1

Похідний файл схеми (BPMN)

Опис кроків по процесу

1

№ кроку

Крок

Опис

Технічний модуль

Методи API які мають або можуть бути використані

2

SE 1.10

Початок процесу

Користувач хоче зареєструватись у Системі

 

 

3

1.10

Користувач ініціює реєстрацію у Системі

Користувач:

  • виконав вхід в інтерфейс авторизованої системи

  • виконує ініціалізацію процедури реєстрації в ЕСОЗ

 

 

4

1.20

Відобразити форму для погодження переліку скоупів

АПІС:

  • генерує список доступів (scope), які повинен погодити користувач

  • відображає форму для погодження отримання доступу користувачу з можливістю погодити або відхилити надання доступу

 

 

5

1.30

Переглянути форму для надання скоупів

Користувач:

  • переглядає форму для надання доступу авторизованій системі

  • виконує погодження або відхилення запиту на надання доступу

АПІС:

  • фіксує результат обробки користувачем форми для надання доступу

 

 

6

GW 1.10

Запит на надання доступу відхилено?

  • якщо “ні“ (запит на надання доступу не відхилено), перейти до кроку 1.50

  • якщо “так“ (запит на надання доступу відхилено), перейти до кроку 1.40

 

 

7

1.50

Зупинити процес реєстрації

Користувач:

  • відхилив запит на надання доступу авторизованій системі

АПІС:

  • зупиняє процес реєстрації пацієнта

 

 

8

1.60

Повернути користувача на початок процесу реєстрації

Авторизована система: повертає користувача на початок процесу реєстрації, перейти до кроку 1.10

 

 

 

9

1.40

Створення запиту на отримання даних для реєстрації

АПІС виконує запит до сервісу авторизації на отримання даних для авторизації системи

Scope

Resource - POST /oauth/nonce

https://e-health-ua.atlassian.net/wiki/spaces/ESOZ/pages/17571315797

10

2.10

Get Nonce

В ЦБД ЕСОЗ виконуються дії, передбачені відповідним методом АРІ

 

https://e-health-ua.atlassian.net/wiki/spaces/ESOZ/pages/17571315797

11

1.70

Відобразити користувачу форму для реєстрації

АПІС:

  • отримала дані для авторизації системи

  • готує форму для реєстрації, за можливістю передзаповнює поля наявними даними пацієнта

 

 

12

1.80

Заповнити та/або змінити попередньо заповнені дані для реєстрації

Користувач:

  • заповнює та/або змінює передзаповнені дані форми для реєстрації згідно наступних вимог:

  1. ім'я (параметр "first_name") - обов'язково;

  2. прізвище (параметр "last_name") - обов'язково;

  3. по батькові (параметр "second_name");

  4. дата народження (параметр "birth_date"), яка заповнюється в форматі "ДД.ММ.РРРР" - обов'язково;

  5. країна народження (параметр "birth_country"), яка заповнюється користувачем згідно з довідником "COUNTRY" та, у разі відсутності необхідного значення, довільним значенням - обов'язково;

  6. місце народження (параметр "birth_settlement"), яка заповнюється користувачем згідно з довідниками "SETTLEMENT_TYPE" та, у разі відсутності необхідного значення, довільним значенням  - обов'язково;

  7. стать (параметр "gender") згідно з довідником "GENDER"- обов'язково;

  8. електронна пошта (параметр "email"), домен якої не міститься в переліку заборонених (заблокованих) визначених відповідними розпорядженнями Національного центру оперативно-технічного управління мережами телекомунікацій (НЦУ);

  9. РНОКПП (параметр "tax_id"), має відповідати формату "^[0-9]{10}$" - АПІС повинна заповнити відомостями отриманими з ДРФО без можливості їх редагування користувачем; 

  10. кодове слово (параметр "secret"), відповідно формату "^[A-Za-zА-Яа-яҐґЇїІіЄє0-9]{6,20}$" - обов'язково;

  11. документ пацієнта (масив "documents"), що посвідчуютє особу згідно закону - обов’язково, зокрема:

    1. тип документа (параметр "type") згідно з довідником "DOCUMENT_TYPE" - обов’язково;

    2. серію (за наявності) та номер документа (параметр "number") - обов’язково, відповідно формату:

  • PASSPORT - "^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$",

  • NATIONAL_ID - "^[0-9]{9}$",

  • BIRTH_CERTIFICATE - "^((?![ЫЪЭЁыъэё@%&$^#`~:,.*|}{?!])[A-ZА-ЯҐЇІЄ0-9№\\/()-]){2,25}$",

  • COMPLEMENTARY_PROTECTION_CERTIFICATE - "^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$",

  • REFUGEE_CERTIFICATE - "^((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{6}$"

  • TEMPORARY_CERTIFICATE - "^(((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{4,6}|[0-9]{9}|((?![ЫЪЭЁ])([А-ЯҐЇІЄ])){2}[0-9]{5}\\/[0-9]{5})$",

  • TEMPORARY_PASSPORT - "^((?![ЫЪЭЁыъэё@%&$^#`~:,.*|}{?!])[A-ZА-ЯҐЇІЄ0-9№\\/()-]){2,25}$";

  1. дата видачі (параметр "issued_at") - обовʼязково;

  2. дійсний до (параметр "expiration_date");

  3. орган яким виданий (параметр "issued_by");

  4. унікальний номер запису в ЄДДР  (УНЗР) (параметр "unzr"), має відповідати формату: "^[0-9]{8}-[0-9]{5}$" - АПІС повинна заповнити УНЗР відомостями отриманими з ЄДДР без можливості їх редагування користувачем;

  5. адреси пацієнта  (масив параметрів "addresses"), користувач повинен обов'язково вказати адресу фактичного місця проживання та адресу реєстрації. Якщо ці адреси співпадають, необхідно поставити відмітку, що адреси збігаються  - обов’язково;

    1. тип адреси - (параметр "type"), згідно з довідником "ADDRESS_TYPE" - обов’язково;

    2. країна - (параметр "country"), згідно з довідником "COUNTRY" - обов’язково;

    3. область - (параметр "area") - обов’язково;

    4. район області - (параметр "region");

    5. населений пункт - (параметр "settlement") - обов’язково;

    6. тип населеного пункту - (параметр "settlement_type"), згідно з довідником "SETTLEMENT_TYPE"  - обов’язково;

    7. ідентифікатор населеного пункту (параметр "settlement_id") - обов’язково;

    8. тип вулиці - (параметр "street_type"), згідно з довідником "STREET_TYPE";

    9. назва вулиці - (параметр "street");

    10. будинок - (параметр "building");

    11. квартира - (параметр "apartment");

    12. поштовий індекс - (параметр "zip");

  6.  контактний телефон користувача (об'єкт "phones"):

    1. тип телефону (параметр "phones_type"), згідно з довідником "PHONE_TYPE" - обов’язково;

    2. номер телефону в форматі "^\\+38[0-9]{10}$" (параметр "phones_number") - обов’язково;

  7. метод автентифікації (об'єкт "authentication_methods") - обов’язково:

    1. тип (параметр "type") - обов’язково;

    2. номер мобільного телефону, в форматі "^\\+38[0-9]{10}$" (параметр "phone_number")  - обов’язково;

  8. бажаний спосіб зв'язку (параметр "preferred_way_communication");

    1. електронна пошта (параметр "email");

    2. телефон (параметр "phone");

  9. дані особи для екстреного зв'язку (об'єкт "emergency_contact") - обов’язково:

    1. ім'я (параметр "first_name") - обов'язково;

    2. прізвище (параметр "last_name") - обов'язково;

    3. по батькові (параметр "second_name");

    4. телефон контакту для екстреного зв'язку (масив "emergency_contact.phones"):

      1. тип телефону (параметр "phones_type"), згідно з довідником "PHONE_TYPE" - обов’язково;

      2. номер в форматі "^\\+38[0-9]{10}$" (параметр "number") - обов’язково;

 

 

13

1.90

Підписати дані для реєстрації за допомогою ЕП

Користувач виконує процедуру накладання ЕП на форму для реєстрації

 

 

 

14

1.100

Провести верифікацію номера телефону методу аутентифікації

АПІС:

  • зберегла підписану форми для реєстрації

  • відправляє номер телефону методу аутентифікації пацієнта для верифікації сервісом верифікації E-Health, додає хеш підписаних даних для реєстрації

  • отримує результат верифікації телефону

Scope - otp:read

Resource - POST /api/sms_verifications

API-010-001-001-0353

https://e-health-ua.atlassian.net/wiki/x/nwCiFAQ

15

2.20

Verify phone number

В ЦБД ЕСОЗ виконуються дії, передбачені відповідним методом АРІ

 

https://e-health-ua.atlassian.net/wiki/x/nwCiFAQ

16

2.30

Відправити SMS ID: 0007

Відправити СМС з кодом користувачу

 

 

17

EE 2.10

СМС відправлена

СМС з кодом відправлено, перехід до кроку 1.110

 

 

18

GW 1.20

Телефон верифікований?

  • якщо “ні“ (телефон не верифікований, у відповідь на запит в параметрі "phone verification result" отримано значення "OTP sent", АПІС повинна відобразити Користувачу поле для введення коду верифікації з СМС), перейти до кроку 1.110

  • якщо “так“ (телефон верифікований, у відповідь на запит в параметрі "phone verification result" отримано значення "Verified", верифікація номера телефона не потрібна, Система не повинна відображати Користувачу поле для введення коду верифікації з СМС), перейти до кроку 1.170

 

 

19

1.110

Відобразити поле для введення коду верифікації з СМС

АПІС повинна відобразити Користувачу поле для введення коду верифікації з СМС, у форматі верифікаційного коду -  "^\d{4}$", з визначеним часом строку дії верифікаційного коду відповідно до конфігураційного параметру "CODE_EXPIRATION_PERIOD_MINUTES"

 

 

20

GW 1.30

Користувач отримав СМС з кодом?

  • якщо “ні“ (Користувач не отримав СМС з кодом), перейти до кроку 1.120

  • якщо “так“ (Користувач отримав СМС з кодом), перейти до кроку 1.150

 

 

21

1.120

Отримати повторно СМС з кодом

якщо користувач не отримав "OTP" або термін дії пароля вичерпано, АПІС має забезпечити можливість Користувачу одноразово повторно отримати "OTP"

 

 

22

1.130

Запит на повторне надсилання СМС з кодом

"OTP" має бути з визначеним часом строку дії верифікаційного коду відповідно до конфігураційного параметру "code_expired_at"

Scope - authentication_method_request:write_pis

Resource - POST /api/pis/authentication_method_requests/{{request_id}}/actions/resend_otp

API-010-001-013-0458
https://pisapi1.docs.apiary.io/#reference/public.-patient-information-system/person-authentication-methods/resend-authorization-otp-for-authentication-method-request

23

2.40

PIS. Resend authorization OTP for authentication method request

в ЦБД ЕСОЗ виконуються дії, передбачені відповідним методом АР

 

https://pisapi1.docs.apiary.io/#reference/public.-patient-information-system/person-authentication-methods/resend-authorization-otp-for-authentication-method-request

24

2.50

Відправити SMS ID: 0007

Відправити СМС з кодом користувачу

 

 

25

EE 2.20

СМС відправлена

СМС з кодом відправлено, перехід до кроку 1.140

 

 

26

1.140

СМС з кодом отримано

Користувач отримав СМС повідомлення з кодом, для введення одноразового пароля в інтерфейсі АПІС

 

 

27

1.150

Ввести пароль з СМС в поле для введення коду

Користувач вводить одноразовий пароль, отриманий на номер телефону, який необхідно верифікувати

 

 

28

1.160

Додати пароль з СМС до підписних даних реєстрації

АПІС додає одноразовий пароль до підписаної форми для реєстрації

 

 

29

1.170

Передати дані користувача до ресурсу реєстрації Системи

АПІС:

  • передає підписану форму для реєстрації.

  • у разі необхідності верифікації телефону методу аутентифікації пацієнта, додав до форми для реєстрації одноразовий пароль

Scope - trusted_person:sign_up

Resource - POST /api/pis/sign-up

https://e-health-ua.atlassian.net/wiki/x/VID3SgQ

30

2.60

TRUSTED PIS. Patient sign-up

в ЦБД ЕСОЗ виконуються дії, передбачені відповідним методом АРІ

 

https://e-health-ua.atlassian.net/wiki/x/VID3SgQ

31

GW 1.40

Підписані дані коректні?

  • якщо “ні“ (підписані дані не коректні), перейти до кроку 1.180

  • якщо “так“ (підписані дані коректні), перейти до кроку GW 1.50

 

 

32

1.180

Зупинити процес реєстрації

АПІС зупиняє процес реєстрації

 

 

33

1.190

Інформаційне повідомлення користувачу про помилку

АПІС відображає помилку реєстрації користувачу з посиланням на помилкову сутність

 

 

34

EE 1.10

Процес завершено

Процес реєстрації завершується через отримання помилки під час реєстрації

 

 

35

GW 1.50

Одноразовий пароль з СМС коректний?

  • якщо “ні“ (одноразовий пароль з СМС не коректний), перейти до кроку 1.200

  • якщо “так“ (одноразовий пароль з СМС коректний), перейти до кроку GW 1.60

 

 

36

1.200

Зупинити процес реєстрації

АПІС зупиняє процес реєстрації

 

 

37

1.210

Інформаційне повідомлення користувачу  щодо помилки коду з СМС

АПІС має відобразити користувачу повідомлення про помилку щодо коду з СМС

 

 

38

EE 1.20

Процес завершено

Процес реєстрації завершується через отримання помилки щодо коду з СМС під час реєстрації

 

 

39

GW 1.60

Знайдено більше одного активного запису про пацієнта?

  • якщо “ні“ (знайдено одного активного запису про пацієнта), перейти до кроку 1.240

  • якщо “так“ (знайдено більше одного активного запису про пацієнта), перейти до кроку 1.220

 

 

40

1.220

Зупинити процес реєстрації

АПІС зупиняє процес реєстрації

 

 

41

1.230

Інформаційне повідомлення користувачу "Звернутись за уточненням персональних даних"

АПІС зупиняє процес авторизації, відображає повідомлення про помилку реєстрації з пропозицією Користувачу звернутись до свого сімейного лікаря, або до контакт-центру НСЗУ для уточнення  своїх персональних даних (поза процесом)

 

 

42

EE 1.30

Процес завершено

Процес реєстрації завершується оскільки знайдено більше одного активного запису про пацієнта

 

 

43

1.140

Зберегти токен доступу “access token” та токен оновлення доступу “refresh token”

АПІС зберігає токен доступу (access token) та токен оновлення доступу (refresh token) для користувача для подальшого використання для звернення до ЕСОЗ

 

 

44

1.150

Повідомлення про успішну реєстрацію

Користувач отримує повідомлення про успішну реєстрацію

 

 

45

EE 1.40

Процес реєстрації користувача завершено

Користувач успішно авторизований в Системі

 

 

46

SE 1.20

Присутні док. з вимогою до завантаження

в масиві "person.documents" присутні документи з типом "PERMANENT_RESIDENCE_PERMIT", та/або міститься документ з типом, що відповідає конфігураційному параметру: "PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES"

 

 

47

1.260

Завантажити електронні копії оригіналів документів

Завантаження електроних копіїй оригіналів документів відбувається відповідно процесу “Завантаження електронних копій оригіналів документів“

 

 

48

EE 1.50

Документи завантажені

Електронні копії оригіналів документів успішно завантажені

 

 

Бізнес правила

  • АПІС повинна надавати Користувачу можливість ознайомитися з політикою конфіденційності через посилання, яке дозволяє переглянути текст політики та зберегти її або надіслати на електронну пошту. Користувач може продовжити реєстрацію лише після явної згоди з політикою. Система повинна підтримувати реєстрацію для користувачів віком від 14 років

  • Після ініціації реєстрації Користувач отримує форму для погодження з умовами доступу (скоупами). Якщо Користувач погоджується, АПІС отримує дані для авторизації через API Системи, після чого відображається форма для заповнення персональних даних відповідно до специфікації API Системи

  • Після підписання даних через електронний підпис, система верифікує номер телефону через OTP, при необхідності. Якщо верифікація успішна, реєстраційні дані передаються в систему через API для створення запису. У разі отримання помилки, процес реєстрації зупиняється з відповідним відображенням повідомлення про помилку у відповідності до специфікації API Системи

Результат процесу

Після успішної реєстрації, АПІС має зберегти токен доступу ("access token") та токен оновлення доступу ("refresh token"), забезпечуючи авторизацію користувача в Системі

Перелік змін

Версія документа

Опис змін

Номер релізу

Версія документа

Опис змін

Номер релізу

1

 

 

 

2

 

 

 

 

 

 

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