Versions Compared

Key

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

Table of Contents

Specification

Apiary
JSON Schema requestnew_medication_schema.json
JSON Schema response
Status
colourRed
titlespecs

...

  • name
  • manufacturer (object)
  • code_atc
  • form
  • container info
  • package_qty
  • package_min_qty
  • certificate
  • expired_certificate_at
  • ingredients (array)

Authorize

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

...

  1. Check exist `Medications` by $.ingredients[].id.

    1. if invalid - return 422 error (message: "INNM in ingredients is not found!")

...

  1. Invoke GetInnmByID($.ingredients[].id). Check exist any innm.is_active=FALSE.

    1. if exists - return 422 error (message: "INNM in ingredients must be active!")

...

  1. Check exists Ingredients with type=MEDICATION.

    1. if exists - return 422 error (message: "Only INNMs can be ingredients!")

...

  1. Calc count() where is_active_substance=TRUE in ingredients. Check count()=1.

    1. if invalid - return 422 error (message: "One of ingredients must be is active substance!")

...

  1. Check exist any  ($.ingredients[].dosage.denumerator_unit != $.container.numerator_unit).

    1. if invalid - return 422 error (message: "Denumerator unit from Dosage ingredients must be equal Numerator unit from Container medication!")

...

    1. if result NOT 0 - return 409 eror (message: "Only a multiplicity package quantity for the minimum package quantity medication!")

Validate atc code

  1. Check that all elements in array of atc_code are different 
    1. in case of error return 422 error (message `atc codes are duplicated`)

Create new Medication

  1. Create new record in Medications 
  2. Fill data 
Destination
Source
id
name$.name
TYPEMEDICATION
is_active TRUE
form$.form
ingredients$.ingredients
container$.container
package_qty$.package_qty
package_min_qty$.package_min_qty
code_atc$.code_atc
manufacturer$.manufacturer
certificate $.certificate
expired_certificate_at$.expired_certificate_at
inserted_at:timestamp
inserted_byuser_id
updated_at:timestamp
updated_byuser_id