Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Ціль

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

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

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

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

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

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

Code Block
languagegraphql
"""
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/

...

  1. EH/pages/

...

  1. 17049387155