ЕСОЗ - публічна документація
Create Medical program provision_UA
Ціль
Даний веб-сервіс дозволяє створити забезпечення по медичній программі в частині відділень юридичної особи користувача. В результаті це визначає, які відділення працюють з програмою в рамках контракту з юридичною особою.
Основні положення
Це метод REST.
Тільки автифіковані та авторизовані власники юридичних осіб з відповідними скоупами можуть вказани відділення по медичній програмі.
Запит повинен бути відписаний цифровим підписом.
Користувач може додати кілька відділень відразу, які працюють з медичною програмою.
Специфікація
Авторизація
Перевірити валідність токену доступу
в разі неуспішної валідації - повернути помилку 401 “Invalid access token”
Перевірити, що строк дії токену не сплинув
в разі помилки - повернути 401 “Invalid access token”
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'medical_program_provision:write')
повернути помилку 403 “Your scope does not allow to access this resource. Missing allowances: medical_program_provision:write” в разі невалідних скоупів
Перевірити цифровий підпис
Перевірити, що запит підписано
в разі помилки - повернути 422 “document must be signed by 1 signer but contains 0 signatures”
Перевірити, що цифровий підпис валідний та дійсний
Перевірити, що цифровий підпис належить користувачу
Перевірити, що ЕДРПОУ та цифровий підпис по party.tax_id співпадають
в разі помилки - повернути 409 “Signer DRFO doesn't match with requester tax_id“
Перевірити юридичну особу
Отримати client_id з токену.
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'medical_program_provision:write')
в разі помилки - повернути 403 “Your scope does not allow to access this resource. Missing allowances: medical_program_provision:write”
Перевірити статус юридичної особи (status = ACTIVE, SUSPENDED)
в разі помилки - повернути 422 “Legal entity is not active”
Перевірити запит
Перевірити
contract_number
:Отримати contract_number для договорів, де:
type = REIMBURSEMENT
is_active=true
status = VERIFIED
contractor_legal_entity = client_id (from token)
в разі помилки - повернути 422 “Your legal entity has no reimbursement contract with number <contract_number> or it is not active”
Перевірити
medical_program_id
:Перевірити, що програма існує та активна
в разі помилки - повернути 422 “Medical program not found”
Перевірити, що медична програма включена в договір
в разі помилки - повернути 422 “Medical program does not belong to contract”
Перевірити
divisions
:Перевірити, що відсутні дублі відділень в масиві
в разі помилки - повернути 422 “Division list has duplicated identifiers in the request”
Для кожного відділення в масиві:
Перевірити, що відділення існує та активне (is_active = true та status = ACTIVE):
в разі помилки - повернути422 “Division with id <id> does not exist or not active”
якщо параметр чарту
DISPENSE_DIVISION_DLS_VERIFY
включено, то перевірити, що від валідований по ДЛС (dls_verified=true)в разі помилки - повернути422 “Division with id <id> is not verified in DLS”
Перевірити, що відділення належить юридичній особі (client_id from token)
в разі помилки - повернути 422 “Division with id <id> does not belong to legal entity”
Перевірити, що відсутні активні записи для того ж відділення, по тій же програмі та по тому ж договору
в разі помилки - повернути 422 “The medical program has already been provided by division with id <id> according to the contract“
Сервісна логіка
Зберегти підписний контент до сховища даних. Див. більше детальну інформацію Bucket structure.
Зберегти записи до бази даних у відповідності до Data model
ЕСОЗ - публічна документація