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

Search Forbidden groups by params_UA

Ціль

Даний веб-сервіс дозволяє знаходити групи з панелі адміністратора за допомогою параметрів пошуку. Групи можна знайти за параметрами груп та/або за параметрами елементів.

Ключові моменти

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

  2. Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідною областю може здійснювати пошук у заборонених групах.

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

""" Fields to filter forbidden groups in the system. """ input ForbiddenGroupFilter { "Checks for equality with the object’s `databaseId` field." databaseId: UUID "Checks for matching with the object’s `name` field." name: String "Checks for equality with the object’s `isActive` field." isActive: Boolean "Forbidden group service filter" forbiddenGroupService: ForbiddenGroupServiceFilter "Forbidden group code filter" forbiddenGroupCode: ForbiddenGroupCodeFilter } """ Methods to use when ordering `ForbiddenGroup`. """ enum ForbiddenGroupOrderBy { "Orders by the object’s `insertedAt` field in the ascending order." INSERTED_AT_ASC "Orders by the object’s `insertedAt` field in the descending order." INSERTED_AT_DESC "Orders by the object’s `name` field in the ascending order." NAME_ASC "Orders by the object’s `name` field in the descending order." NAME_DESC } """ A connection to a list of `ForbiddenGroup` items. """ type ForbiddenGroupConnection { "Information to aid in pagination." pageInfo: PageInfo! "A list of nodes." nodes: [ForbiddenGroup] "A list of edges." edges: [ForbiddenGroupEdge] } """ An edge in a connection of `ForbiddenGroup`. """ type ForbiddenGroupEdge { "The item at the end of the edge." node: ForbiddenGroup! "A cursor for use in pagination." cursor: String! } """ ForbiddenGroup contains details about restricted codes, services and service groups included in medical events. In order to obtain details user must have a scope **forbidden_group:details** """ type ForbiddenGroup implements Node { "The ID of an object." id: ID! "Primary key identifier from the database." databaseId: UUID! "The name of the `ForbiddenGroup`." name: String! "The reason the `ForbiddenGroup` was created." creationReason: String! "The reason the `ForbiddenGroup` was deactivated." deactivationReason: String "Whether the `ForbiddenGroup` is active or not?" isActive: Boolean! "Date and time when record was inserted." insertedAt: DateTime! "Date and time when record was updated." updatedAt: DateTime! "Services and Service groups wich belong to ForbiddenGroup." forbiddenGroupServices( "A condition to be used in determining which values should be returned by the collection." filter: ForbiddenGroupServiceFilter "The method to use when ordering collection items." orderBy: ForbiddenGroupServiceOrderBy "Read all values in the set after (below) this cursor." after: String "Read all values in the set before (above) this cursor." before: String "Only read the first _n_ values of the set." first: Int "Only read the last _n_ values of the set." last: Int ): ForbiddenGroupServiceConnection! "Codes wich belong to ForbiddenGroup." forbiddenGroupCodes( "A condition to be used in determining which values should be returned by the collection." filter: ForbiddenGroupCodeFilter "The method to use when ordering collection items." orderBy: ForbiddenGroupCodeOrderBy "Read all values in the set after (below) this cursor." after: String "Read all values in the set before (above) this cursor." before: String "Only read the first _n_ values of the set." first: Int "Only read the last _n_ values of the set." last: Int ): ForbiddenGroupCodeConnection! }

Авторизація

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

    • у випадку помилки - повернути 401 (“Invalid access token”) in case of validation fails

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

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

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

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

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

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

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

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

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

    • у випадку помилки - повернути 409 ('client_id refers to legal entity that is not active')

Параметри пошуку

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

  1. id. Пошук по forbidden_groups.id (використовується для отримання детальних відомостей про групу)

  2. name. Пошук по forbidden_groups.name 

  3. is_active. Пошук по forbidden_groups.is_active

  4. item_code. Пошук по:

    • services.code (сервіс об'єднання forbidden_group_services)

    • service_groups.code (forbidden_group_services об'єднання service_groups)

    • forbidden_group_codes.code (для довідників)

  5. item_name. Пошук по:

    • services.name (сервіс об'єднання forbidden_group_services)

    • service_groups.name (forbidden_group_services об'єднання service_groups)

    • опис кодів для довідників (forbidden_group_codes fc об'єднання довідників d по fc.system = d.name and fc.code = d.values.code)

  6. item_type (string). Обмежує пошук такими елементами:

    • service - пошук в елементах послуги

    • service_group - пошук по елементам service_group  

    • <system> - пошук по визначеному довіднику. Де <system> є назва довідникаeHealth/ICD10_AM/condition_codeseHealth/ICPC2/actionseHealth/ICPC2/condition_codes або eHealth/ICPC2/reasons 

  7. item_is_active. Пошук по:

    • forbidden_group_services.is_active - для service/service_group

    • forbidden_group_codes.is_active - для dictionaries

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

Відобразити масив forbidden_groups з вкладеними масивами forbidden_group_codes та forbidden_group_services по параметрам, що співпадають.

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