Versions Compared

Key

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

Purpose

This WS allows deactivating existing medical programs.

Key points

  1. This is a graphQl method used in the Administration panel only.

  2. Only authenticated and authorized NHS employee with an appropriate scope can deactivate a Medical program.

Specification

Page Properties

Link

See GraphQl Specification

Посилання на Apiary або Swagger

Resource

See GraphQl Specification

Посилання на ресурс, наприклад: /api/persons/create

Scope

medical_program:write

Scope для доступу

Components

API paragraph not found

Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescription

Microservices

API paragraph not found

Перелік мікросервісів, які використовує метод API, наприклад: Auth, ABAC

Protocol type

API paragraph not found

Тип протоколу, який використовується запитом, наприклад: SOAP | REST

Request type

API paragraph not found

Тип запиту API, наприклад: GET, POST, PATCH…

Sync/Async

API paragraph not found

API paragraph not foundМетод є синхронним чи асинхронним?

Logic

For the medical program entity set:

  1. is_active = false

  2. updated_by = current user (from token)

  3. updated_at = current date and time.

Preconditions

API paragraph not found

Global and configurable parameters

API paragraph not found

Input parameters

API paragraph not found

Filters

API paragraph not found

Dictionaries

API paragraph not found

GraphQL Specification

Expand
titledeactivateMedicalProgram
Code Block
  "Deactivates a single `MedicalProgram` using its globally unique ID."
  deactivateMedicalProgram(
    input: DeactivateMedicalProgramInput!
  ): DeactivateMedicalProgramPayload

Code Block
"""
Input for `deactivateMedicalProgram` mutation.
User must have a scope **medical_program:write**
"""
input DeactivateMedicalProgramInput {
  "The ID of a `MedicalProgram` to deactivate."
  id: ID!
}
Code Block
"""
Return type for `deactivateMedicalProgram` mutation.
"""
type DeactivateMedicalProgramPayload {
  "Deactivated `MedicalProgram`."
  medicalProgram: MedicalProgram
}

Authorize

  • Verify the validity of access token

    • in case of error - return 401 (“Invalid access token”) in case of validation fails.

  • Verify that token is not expired

    • in case of error - return 401 (“Invalid access token”).

  • Check user scopes in order to perform this action (scope = 'medical_program:write')

    • return 403 (“Your scope does not allow to access this resource. Missing allowances: medical_program:write”) in case of invalid scope(s).

Request data validation

Validate legal entity

  • Extract client_id from token.

  • Check client scopes in order to perform this action (scope = 'medical_program:write')

    • in case of error - return 403 (“Your scope does not allow to access this resource. Missing allowances: medical_program:write”).

  • Check type = NHS

    • in case of error - return 403 ('You don’t have permission to access this resource').

Validate medical program ID

  1. Check id exists in DB

    1. in case of error - return 404 ('not_found').

Validate related program medications

For each related program medication:

  1. Check it has is_active=true

    1. in case of error - return 409 ('This program has active participants. Only medical programs without participants can be deactivated').

Processing

API paragraph not found

Response structure

API paragraph not found

Post-processing processes

API paragraph not found

HTTP status codes

Page Properties

HTTP status code

Message

What caused the error

401

 Invalid access token

 

403

  • Your scope does not allow to access this resource. Missing allowances: medical_program:write.

  • You don’t have permission to access this resource.

 

404

not_found

Check id exists in DB failed

409

This program has active participants. Only medical programs without participants can be deactivated

Backward compatibility

API paragraph not found