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

RС_[NEW] (GraphQl) Get Program device by ID_EN

Purpose

This WS allows to get details of a participant of medication program with device type.

Key points

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

  2. Only authenticated and authorized NHS employee with appropriate scope can get details of a Program device.

Specification

"Reads a single `programDevice` using its globally unique ID." programDevice(id: ID!): ProgramDevice
""" Program Device linkes device definition and medical program. In order to obtain details user must have a scope **program_device:read** """ type ProgramDevice implements Node { "The ID of an object." id: ID! "Primary key identifier from the database." databaseId: UUID! "Medical program." medicalProgram: MedicalProgram! "Device definition." deviceDefinition: DeviceDefinition! "Reimbursement information." reimbursement: Reimbursement! "Wholesale selling price per package." wholesalePrice: Float "Retail price per package." consumerPrice: Float "The daily count of the device definition to be compensated." reimbursementDailyCount: Int "The amount of surcharge for packaging." estimatedPaymentAmount: Float "Date of configuration start." startDate: Date! "Date of configuration end." endDate: Date "Number (version) of reimbursement configuration." registryNumber: String "Whether `ProgramDevice` is active or not?" isActive: Boolean! "Is it allowed to prescribe this device definition?" deviceRequestAllowed: Boolean! "Date and time when record was inserted" insertedAt: DateTime! "Date and time when record was updated" updatedAt: DateTime! "The maximum allowable daily quantity of the device." maxDailyCount: Int "Is it allowed to create care plan activity for this device definition?" carePlanActivityAllowed: Boolean! }

Authorization

  • Verify the validity of access token

    • 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 = 'program_device:read')

    • Return (403, 'Your scope does not allow to access this resource. Missing allowances: program_device:read') in case of invalid scope(s)

Validate legal entity

  • Extract client_id from token.

  • Check legal entity status (status = ACTIVE)

    • In case of error - return 409 ('client_id refers to legal entity that is not active')

  • Check client type (type = NHS)

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

Validate program device

  • Check that program device with id from request exists in program_devices table, PRM DB

    • in case of error - return 404 ('Program device not found')

Service logic

  1. Get program device by id from program_devices table, PRM DB

    1. Preload medical program details by medical_program_id from medical_programs table in PRM DB

    2. Preload device definition details by device_definition_id from device_definitions table in PRM DB

  2. Render a response according to specification

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