Ціль
Даний веб-сервіс дозволяє знаходити групи з панелі адміністратора за допомогою параметрів пошуку. Групи можна знайти за параметрами груп та/або за параметрами елементів.
Ключові моменти
Даний сервіс на graphQl використовується лише з панелі адміністрування.
Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідною областю може здійснювати пошук у заборонених групах.
Специфікація
""" 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.
id. Пошук по forbidden_groups.id (використовується для отримання детальних відомостей про групу)
name. Пошук по forbidden_groups.name
is_active. Пошук по forbidden_groups.is_active
item_code. Пошук по:
services.code (сервіс об'єднання forbidden_group_services)
service_groups.code (forbidden_group_services об'єднання service_groups)
forbidden_group_codes.code (для довідників)
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)
item_type (string). Обмежує пошук такими елементами:
service - пошук в елементах послуги
service_group - пошук по елементам service_group
<system> - пошук по визначеному довіднику. Де <system> є назва довідника
eHealth/ICD10_AM/condition_codes
,eHealth/ICPC2/actions
,eHealth/ICPC2/condition_codes
абоeHealth/ICPC2/reasons
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 по параметрам, що співпадають.