Versions Compared

Key

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

Table of Contents

Status

Page Properties


Specification

Status
colourGreen
titledone

Apiary
Status
colourGreen
titledone
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 within Medical_program. 

Specification

Apiary                                      

WS logic

Authorize

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

Verify the validity of access token

  1. Check user scope (scope = 'program_medications:write') in order to perform this action
    1. In case 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 Medications

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

...

Code Block
languageerl
{:error, [{%{
        description: "ID for Medication 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: "Medication within the program is inactive")

Validate medical_request_allowed status

To deactivate Participant (to update is_active == FALSE for medication 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 within the program firstly disable medical_request_allowed")

Update Program Medication

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