Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Apiary
JSON Schema request

Status
colourRed
titleSPECS

JSON Schema response
Status
colourRed
titlespecs

Purpose

This WS  is design to update reimbursement and/or flags "is_active", "medication_request_allowed" for Medication Brand within Medical _ program. 

WS logic

Authorize

  1. Verify the validity of access token
    1. In case of error - generate 401 response
  2. Check user scope (scope = 'program_medicationbrand:write') in order to perform this action
    1. In case of error - generate 403 response

Verify the validity of access token

  1. Check user scope (scope = 'program_medicationsbrand:write') in order to perform this action
    1. In case of error - generate 401 response

Validate request (JSON schema)

  1. Validate request using JSON schemas:
    1. Return 422 with list of validation errors in case validation fails (422 EView)

Validate PK Program

...

Brands

1. Check participant (Program_medication brand) ($.id) exists in PRM.medicationsprogram_brands

In case of error - return 422 error (message: "ID for Medication Brand within the Medical program is not found")

Code Block
languageerl
{:error, [{%{
        description: "ID for MedicationBrand within the Medical program is not found",
        params: [],
        rule: :invalid
      }, "$.id"}]}

Validate status

1. Validate `is_active` == TRUE

    1. if invalid  - return 409 eror (message: "MedicationBrand within the program is inactive")

Validate medical_request_allowed status

To deactivate Participant (to update is_active == FALSE for medication within brand within the program with id={id}) medical_request_allowed must be inactive (medical_request_allowed == FALSE) 

...

    1. if invalid  - return 409 eror (message: "To deactivate medication brand within the program firstly disable medical_request_allowed")

Update Program

...

Brand

Update medication record by $.id  set values:

Destination

Source

Description
reimbursement$.reimbursement
is_active

$.is_active


medical_request_allowed$.medical_request_allowed
inserted_at:timestampGet current date-time
inserted_byuser_idExtract user from token
updated_at:timestampGet current date-time
updated_byuser_idExtract user from token