Цей документ описує процес отримання токена авторизації (Token), необхідного для доступу до API платформи.
ЗМІСТ
Крок 1. Авторизація
Client credentials flow:

Виконайте POST-запит на адресу https://id.medakadem.com/connect/token:
Незалежно від медичного закладу з яким відбувається інтегація - точка доступу для отримання токену це https://id.medakadem.com/connect/token
POST /connect/token HTTP/1.1 Host: id.medakadem.com Content-Type: application/x-www-form-urlencoded client_id=<client_id_value>&client_secret=<client_secret_here>&grant_type=client_credentials&scope=gambit%3Astatic_data

| Параметр | Значекння | Опис | 
| grant_type | client_credentials | незмінне значення | 
| client_id | ідентифікатор клієнта | для отримання зверністся на підтримку | 
| client_secret | секретний параметрл клієнта | для отримання зверністся на підтримку | 
| scope | перелік необхідних скоупів | 
Параметр scope - містить розділений пробілом перелік прав доступу які матиме access_token. Для кожного ключа апі перелік доступних значень може бути різний.
Замініть client_id, client_secret та scope на надані вам техпідтримкою.
Patient flow

для певних АПІ, таких як:
- GET api/online/v1/patient/prerecords
- GET api/online/v1/patient/prerecords/{patientId:int}
- GET api/online/v1/patient/prerecords/countPlanned
- GET api/online/v1/patient/prerecords/by/id/{id}
- DELETE api/online/v1/patient/prerecords/{prerecordId}
- POST api/online/v1/patient/prerecords
- api/online/v1/patient/identity/*
- GET api/online/v1/patient/history
- GET api/online/v1/patient/history/analysisFiles/{analysisId:int}
- GET api/online/v1/patient/history/print/analysis/{analysisId:int}
- GET api/online/v1/patient/history/ print/protocol/{protocolId:int}
- GET api/online/v1/patient/protocols/{id}/information
- GET api/online/v1/patient/analysis/{id}/information
- api/online/v1/patientFamily/*
необхідно використовувати токен іншого типу, токен який видається для кожного пацієнта індивідуально, використовуючи OTP код авторизаціх.
для цього потрібно:
- виконати запит на ресурс: POST api/online/v2/patient/identity/initialize-otp-login
curl --location 'https://<clinica-web-customer>.medakadem.com.ua/api/online/v2/patient/identity/initialize-otp-login' \
--header 'Authorization: Bearer <token_here>' \
--header 'Content-Type: application/json' \
--data '{
    "Phone": "0000000000"
}'Токен для виклику даного апі повинен бути отриманий за процесом описаним в розділі Client credentials flow, і містити scope - gambit:online.
HOST для виконання даного апі - це хост медичного закладу - https://<clinica-web-customer>.medakadem.com.ua/
- При успішному виконанні -пацієнту надійде 4х чифровий OTP код (термін дії якого обмежений)
- Виконати запит на отримання токену - POST https://id.medakadem.com/connect/tokencurl --location 'https://id.medakadem.com/connect/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: ••••••' \ --data-urlencode 'grant_type=patient' \ --data-urlencode 'client_id=••••••'' \ --data-urlencode 'client_secret=••••••'' \ --data-urlencode 'scope=gambit:online gambit:static_data patient_profile offline_access gambit:patient:profile' \ --data-urlencode 'client_name=<client_name>' \ --data-urlencode 'phone=0000000000' \ --data-urlencode 'otp=0000'  
| Параметр | Значекння | Опис | 
| grant_type | patient | незмінне значення | 
| client_id | ідентифікатор клієнта | для отримання зверністся на підтримку | 
| client_secret | секретний параметрл клієнта | для отримання зверністся на підтримку | 
| scope | перелік необхідних скоупів | gambit:online gambit:static_data patient_profile offline_access gambit:patient:profile (мінімально необхідний перелік для роботи, за необхідністю його можна розширити). | 
| client_name | назва клієнта | можна отримати в підтримки | 
| phone | телефон пацієнта | без розділових знаків чи пробілів | 
| otp | одноразовий код авторизації пацієнта | (буде надісланий після виклику методу в попередньому кроці) | 
при успішній відповіді ви отримаєте:
{
    "access_token": "<accesss_token value>",
    "expires_in": 3600,
    "token_type": "Bearer",
    "refresh_token": "<refresh token value>",
    "scope": "gambit:online gambit:patient:profile gambit:static_data offline_access patient_profile"
}якщо у переліку скоупів є gambit:patient:profile - також обов'язково слід додати patient_profile
offline_access - системний scope, якщо його передати то у відповіді ви отримаєте також і refresh_token, з яким можете переотримати токен для поточного пацієнта по спрощеному процесуКрок 2. Отримання відповіді
Після успішної авторизації сервер поверне відповідь, яка міститиме токен у полі access_token:
{
    "access_token": "access_token_here",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": "gambit:static_data"
}
| Параметр | Тип | Опис | 
| access_token | string | token доступу | 
| expires_in | number | Тривалість життя токену в секундах | 
| token_type | string | Bearer | 
| scope | string | Список scopes | 
Використовуйте значення поля access_token для авторизації ваших подальших запитів до API.
Використання Token
Для доступу до захищених ресурсів API включайте токен у заголовок запиту таким чином:
Authorization: Bearer access_token_value
