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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

Version 1 Current »

Ціль

Даний веб-сервіс (WS) дозволяє створити налаштування бізнес-правила з адміністративної панелі. Налаштування бізнес-правила буде використовуватися, як додаткова валідація при створенні відповідного медичного запису.

Основні положення

  1. Це метод graphQl, який використовується тільки в адміністративній панелі.

  2. Тільки автентифіковані та авторизовані співробітники НСЗУ з відповідним скоупом може створювати налаштування бізнес-правил.

  3. Налаштування бізнес-правил повинні бути підписані цифровим підписом (DS).

Специфікація

"""
Input for `createRuleEngineRule` mutation.

User must have a scope **rule_engine_rule:write**
"""
input CreateRuleEngineRuleInput {
  "Signed data to create rule engine set"
  signedContent: SignedContent!
}

"""
Return type for `createRuleEngineRule` mutation.
"""
type CreateRuleEngineRulePayload {
  "Created `RuleEngineRule`."
  ruleEngineRule: RuleEngineRule
}

Авторизація

  • Перевірити валідність токену доступу

    • в разі помилки - повернути 401 (“Invalid access token”) про неуспішність валідації

  • Перевірити, що токен дійсний

    • в разі помилки - повернути 401 (“Invalid access token”)

  • Перевірити скоупи користувача на можливість виконання даної дії (scope = 'rule_engine_rule:write')

    • повернути 403 (“Your scope does not allow to access this resource. Missing allowances: rule_engine_rule:write”) в разі невалідних скоупів

Перевірити юридичну особу

  • Отримати client_id з токену.

  • Перевірити скоупи клієнта на можливість виконання даної дії (scope = 'rule_engine_rule:write')

    • в разі помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: rule_engine_rule:write”)

  • Перевірити статус юридичної особи (status = ACTIVE)

    • в разі помилки - повернути 409 ('client_id посилається на юридичну особу, яка не активна')

Перевірити цифровий підпис

  • Перевірити, що запит підписано

    • в разі помилки - повернути 422 (“document must be signed by 1 signer but contains 0 signatures”)

  • Перевірити, що цифровий підпис (DS) валідний та дійсний

  • Перевірити, що цифровий підпис (DS) належить користувачу

    • Перевірити, що EDRPOU з DS та legal_entities.edrpou для client_id відповідають

      • в разі помилки - повернути 422 (“Signer edrpou doesn’t match with requester edrpou”)

    • Перевірити, що DRFO з DS та party.tax_id співпадають

      • в разі помилки - повернути 409 (“Signer DRFO doesn't match with requester tax_id“)

Перевірити запит

  • Перевірити name, code та value блоки вказано

    • в разі помилки - повернути 422 ('очікувана властивість <property> не була вказана')

  • Перевірити, що налаштування бізнес-правил з code унікальна (отримати активну rule_engine_rule з тим самим code.system та code.value)

    • в разі помилки - повернути 409 ("Rule engine rule with such code and system already exists")

Сервісна логіка

  1. Зберегти підписаний контент до сховища даних

  2. Зберегти дані до колекції rule_engine_rules (Mongo DB) у відповідності до https://e-health-ua.atlassian.net/wiki/spaces/PCR/pages/16954327098

  • No labels